c语言怎么判断一个数是质数
时间: 2024-09-22 11:01:31 浏览: 54
在C语言中判断一个数是否是质数,通常会采用试除法(也称为埃拉托斯特尼筛法的一种简化版)。以下是一个简单的函数,用于检查一个给定的整数n是否为质数:
```c
#include <stdbool.h> // 引入bool类型
// 函数声明
bool is_prime(int n);
// 判断是否为质数的核心函数
bool is_prime(int n) {
if (n <= 1) { // 质数定义排除1和0
return false;
}
if (n == 2 || n == 3) { // 2和3是特例,直接返回真
return true;
}
if (n % 2 == 0 || n % 3 == 0) { // 排除所有偶数和能被3整除的数
return false;
}
for (int i = 5; i * i <= n; i += 6) { // 只需测试到根号n,因为大于根号n的因子都会有一个小于根号n的配对
if (n % i == 0 || n % (i + 2) == 0) {
return false;
}
}
return true; // 如果以上条件都不满足,则n是质数
}
// 示例用法
int main() {
int num = 17; // 需要检查的数字
if (is_prime(num)) {
printf("%d是质数\n", num);
} else {
printf("%d不是质数\n", num);
}
return 0;
}
阅读全文