用c语言如何编写一个函数来判断一个整数是否为质数(素数)?
时间: 2024-12-23 10:20:34 浏览: 55
在C语言中,我们可以编写一个函数来判断一个整数是否为质数。下面是一个简单的函数实现,它通过检查小于该数字平方根的所有数,看是否有除1和本身以外的因子来确定:
```c
#include <stdbool.h>
#include <math.h>
bool is_prime(int num) {
if (num <= 1) { // 小于等于1的数不是质数
return false;
}
if (num == 2 || num == 3) { // 2和3是特例,直接返回真
return true;
}
if (num % 2 == 0 || num % 3 == 0) { // 质数不可能是偶数(除了2)或能被3整除
return false;
}
int sqrt_num = sqrt(num); // 只需要检查到sqrt(n),因为大于这个值的因子一定会有一个对应小于它的因子
for (int i = 5; i <= sqrt_num; i += 6) { // 提高效率,跳过6的倍数,因为所有质数都可以表示为6k±1的形式
if (num % i == 0 || num % (i + 2) == 0) {
return false;
}
}
return true;
}
// 示例
int main() {
int number = 17;
if (is_prime(number)) {
printf("%d is a prime number.\n", number);
} else {
printf("%d is not a prime number.\n", number);
}
return 0;
}
```
阅读全文
相关推荐


















