判断输入的整数是否为素数,若是素数,函数返回1,否则返回0
时间: 2024-11-06 19:16:02 浏览: 11
判断一个整数是否为素数,通常需要遍历从2到该数减1的所有整数,看是否存在除1和它本身以外的因子。以下是用C语言编写的一个简单函数来完成这个任务:
```c
#include <stdbool.h>
// 定义一个函数isPrime检查一个整数是否为素数
bool isPrime(int num) {
if (num <= 1) { // 小于等于1的数不是素数
return false;
} else if (num == 2) { // 2是唯一的偶数素数
return true;
} else if (num % 2 == 0) { // 偶数除了2之外都不是素数
return false;
}
// 只需检查到sqrt(num),因为大于该值的因数必定小于sqrt(num)
int sqrt_num = (int)sqrt((double)num);
for (int i = 3; i <= sqrt_num; i += 2) {
if (num % i == 0) { // 如果找到因子,说明不是素数
return false;
}
}
return true; // 否则,数是素数
}
int main() {
int input;
printf("Enter a number: ");
scanf("%d", &input);
if (isPrime(input)) {
printf("%d is a prime number.\n", input);
return 1;
} else {
printf("%d is not a prime number.\n", input);
return 0;
}
}
```
在这个函数中,我们首先排除了1和偶数(除了2以外),然后只检查奇数作为可能的因子。如果找到了因子,就返回false;如果没有找到,那么就是素数,返回true。
阅读全文