编写程序,判断从键盘输入的正整数n是否是素数,判断素数的语句写在子函数中。用C语言编写程序
时间: 2024-09-14 22:05:27 浏览: 46
在C语言中,我们可以创建一个函数来检查一个数字是否为素数。首先,我们需要编写一个用于检测素数的辅助函数,然后再在主函数中接收用户输入并调用该函数。以下是相应的代码:
```c
#include <stdio.h>
// 辅助函数,用于检查一个数是否为素数
int isPrime(int num) {
if (num <= 1) { // 0和1不是素数
return 0;
} else if (num == 2) { // 2是最小的素数
return 1;
} else if (num % 2 == 0) { // 偶数除了2之外都不是素数
return 0;
}
// 检查从3到sqrt(num)的所有奇数因子
for (int i = 3; i * i <= num; i += 2) {
if (num % i == 0) {
return 0; // 如果找到因子,那么num不是素数
}
}
return 1; // 如果没找到因子,num就是素数
}
int main() {
int n;
printf("请输入一个正整数: ");
scanf("%d", &n);
// 判断输入的数是否为素数并输出结果
if (isPrime(n)) {
printf("%d是素数。\n", n);
} else {
printf("%d不是素数。\n", n);
}
return 0;
}
```
在这个程序中,`isPrime` 函数递归地排除了所有小于等于其平方根的偶数因子,因为如果一个数不是质数,必定有一个小于等于它的平方根的因子。主函数则从键盘读取输入,然后调用 `isPrime` 函数判断该数是否为素数。
阅读全文