用c语言写一个程序:对于一个数字,如果它的质数因子只有2, 3, 5,那么他就会被称为丑数,求第n个丑数
时间: 2023-02-07 19:04:19 浏览: 97
首先, 要判断一个数字是不是质数, 可以使用如下代码:
```
int is_prime(int num) {
if (num <= 1) {
return 0;
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return 0;
}
}
return 1;
}
```
然后, 对于一个数字, 可以使用如下代码来判断它的质数因子是否只有 2, 3, 5:
```
int is_ugly(int num) {
while (num % 2 == 0) {
num /= 2;
}
while (num % 3 == 0) {
num /= 3;
}
while (num % 5 == 0) {
num /= 5;
}
return num == 1;
}
```
最后, 可以使用如下代码来求第 n 个丑数:
```
int nth_ugly_number(int n) {
int ugly_number = 0;
int count = 0;
while (count < n) {
ugly_number++;
if (is_ugly(ugly_number)) {
count++;
}
}
return ugly_number;
}
```
这段代码中, 变量 ugly_number 表示当前枚举到的数字, count 表示已经找到的丑数的数量. 每次枚举到一个新的数字时, 就调用 is_ugly 函数判断它是否为丑数, 如果是就将 count 加 1, 直到找到第 n 个丑数为止.
阅读全文