用C语言确定一个数是不是素数
时间: 2024-10-15 15:29:40 浏览: 39
在C语言中,判断一个数是否为素数通常采用试除法或埃拉托斯特尼筛法。这里简单介绍一种常见的试除法方法:
```c
#include <stdio.h>
#include <stdbool.h>
bool isPrime(int n) {
// 素数定义:大于1的自然数,除了1和它本身以外不再有其他因数
if (n <= 1) { // 如果小于等于1,不是素数
return false;
}
if (n == 2 || n == 3) { // 2和3是特例,它们是最小的素数
return true;
}
if (n % 2 == 0 || n % 3 == 0) { // 检查能否被2或3整除,若能则不是素数
return false;
}
for (int i = 5; i * i <= n; i += 6) { // 只需检查到根号下即可,因为因子对都是成对出现的
if (n % i == 0 || n % (i + 2) == 0) {
return false;
}
}
return true; // 如果没有找到因子,则n是素数
}
int main() {
int num;
printf("Enter a number: ");
scanf("%d", &num);
if (isPrime(num)) {
printf("%d is prime.\n", num);
} else {
printf("%d is not prime.\n", num);
}
return 0;
}
阅读全文