c语言判断一个正整数是否是质数,若不是则输出它的因子
时间: 2024-10-23 22:05:51 浏览: 41
在 C 语言中,可以编写函数来判断一个正整数是否为质数,并找出其非质数因子。这里是一个简单的实现方法:
```c
#include <stdio.h>
// 判断是否为质数的辅助函数
int is_prime(int num) {
if (num <= 1) // 质数定义排除1和负数
return 0;
for (int i = 2; i * i <= num; i++) { // 只需检查到 num 的平方根
if (num % i == 0) // 如果 num 能被 i 整除,则它不是质数
return 0;
}
return 1; // 否则是质数
}
// 输出因子的主函数
void find_factors(int num) {
if (!is_prime(num)) { // 若 num 不是质数
printf("数字 %d 不是质数,它的因子有:", num);
for (int i = 1; i <= num; i++) {
if (num % i == 0 && i != num) { // 避免打印自身
printf("%d ", i);
}
}
printf("\n");
} else {
printf("%d 是质数。\n", num);
}
}
int main() {
int input_num;
printf("请输入一个正整数: ");
scanf("%d", &input_num);
find_factors(input_num);
return 0;
}
```
在这个程序中,`is_prime()` 函数用于判断输入的数是否为质数,而 `find_factors()` 函数会根据结果找出并打印出所有因子(除了1和本身)。运行这个程序时,用户会被提示输入一个正整数,然后程序会判断并显示结果。
阅读全文