丑数判断C语言
时间: 2023-08-05 22:07:34 浏览: 126
C语言实现丑数算法
丑数是指只包含质因子 2、3 和 5 的正整数。具体的判断方法如下:
1. 如果输入的数为非正整数,则不是丑数,直接返回 false。
2. 如果输入的数为 1,则是丑数,直接返回 true。
3. 如果输入的数能够被 2 整除,就将其除以 2,直到不能再被 2 整除为止。
4. 如果输入的数能够被 3 整除,就将其除以 3,直到不能再被 3 整除为止。
5. 如果输入的数能够被 5 整除,就将其除以 5,直到不能再被 5 整除为止。
6. 最后判断剩余的数是否等于 1,如果等于 1,则是丑数,返回 true,否则不是丑数,返回 false。
以下是相应的 C 语言代码实现:
```c
#include <stdio.h>
#include <stdbool.h>
bool isUgly(int num) {
if (num <= 0) {
return false;
}
while (num % 2 == 0) {
num /= 2;
}
while (num % 3 == 0) {
num /= 3;
}
while (num % 5 == 0) {
num /= 5;
}
return num == 1;
}
int main() {
int num;
printf("请输入一个正整数:");
scanf("%d", &num);
if (isUgly(num)) {
printf("%d 是丑数!", num);
} else {
printf("%d 不是丑数!", num);
}
return 0;
}
```
在实现中,我们使用了 while 循环来反复除以 2、3、5,直到不能再被整除为止。最后判断剩余的数是否等于 1,如果等于 1,则返回 true,否则返回 false。
阅读全文