用c语言判断一个数是不是只有3个质数
时间: 2023-07-16 16:17:04 浏览: 103
判断一个数是否只有3个质数可以分解质因数,如果分解后只有3个质因数,则该数就符合条件。以下是用C语言实现的代码:
```c
#include <stdio.h>
int is_prime(int n)
{
if (n <= 1) {
return 0;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main()
{
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
int count = 0;
for (int i = 2; i * i <= n && count < 3; i++) {
if (n % i == 0 && is_prime(i)) {
count++;
while (n % i == 0) {
n /= i;
}
}
}
if (n > 1 && is_prime(n)) {
count++;
}
if (count == 3) {
printf("该数只有3个质因数\n");
} else {
printf("该数不只有3个质因数\n");
}
return 0;
}
```
这段代码中,is_prime()函数用于判断一个数是否为质数。在主函数中,我们先输入一个正整数n,然后统计n的质因数个数。具体来说,我们从2开始枚举n的因数i,如果i是质数并且能够整除n,就将i的个数加1,并将n除以i,重复这个过程直到n不能被i整除为止。最后如果n大于1且是质数,也要将i的个数加1。最后判断i的个数是否为3即可。
阅读全文