用 c 语言描述 输入一个正整数,然后判断它是否是质数,若不是质数,输出因子。
时间: 2024-10-23 22:04:13 浏览: 26
在 C 语言中,我们可以编写一个程序来输入一个正整数,并判断它是否为质数。如果它不是质数,程序会输出其所有因子。以下是简单的步骤和代码示例:
首先,我们需要定义一个函数 `is_prime` 来检查一个数字是否是质数,以及一个辅助函数 `find_factors` 来找出所有的因子。
```c
#include <stdio.h>
// 判断是否为质数
int is_prime(int n) {
if (n <= 1) {
return 0; // 1不是质数,0表示非质数
}
for (int i = 2; i * i <= n; i++) { // 只需检查到根号n
if (n % i == 0) {
return 0;
}
}
return 1; // 如果没有任何因子,返回1表示它是质数
}
// 找出因子并打印
void find_factors(int num) {
printf("Factors of %d are: ", num);
for (int i = 1; i <= num; i++) {
if (num % i == 0) {
printf("%d ", i); // 输出因子
}
}
printf("\n");
}
int main() {
int input;
printf("Enter a positive integer: ");
scanf("%d", &input);
if (!is_prime(input)) {
find_factors(input);
} else {
printf("%d is a prime number.\n", input);
}
return 0;
}
```
在这个程序中,用户需要输入一个正整数。如果输入的是质数,程序将直接告知;如果不是质数,则会显示它的所有因子。请注意,这个简单的实现未处理输入验证,实际应用中应考虑用户输入非法的情况。运行此程序时,按照提示操作即可得到结果。
阅读全文