c语言 任意给一个正整数,判断它是否为素数
时间: 2024-09-19 11:07:06 浏览: 45
在 C 语言中,判断一个正整数是否为素数的基本算法是试除法。素数是指只有 1 和自身两个正因数的自然数。下面是一个简单的函数示例,用于检查输入的数 n 是否为素数:
```c
#include <stdio.h>
#include <stdbool.h>
bool is_prime(int n) {
// 素数定义:大于1的整数,且除了1以外没有其他正因数
if (n <= 1) {
return false; // 0和1不是素数
} else if (n == 2) {
return true; // 2是最小的素数
} else if (n % 2 == 0) {
return false; // 偶数(除了2外)不是素数
}
// 循环从3开始到 sqrt(n),因为如果 n 有因数,那么至少有一个小于等于它的平方根
for (int i = 3; i * i <= n; i += 2) { // 只需检查奇数因子
if (n % i == 0) {
return false;
}
}
return true; // 如果没有任何因数,则 n 是素数
}
int main() {
int num;
printf("请输入一个正整数: ");
scanf("%d", &num);
if (is_prime(num)) {
printf("%d 是素数\n", num);
} else {
printf("%d 不是素数\n", num);
}
return 0;
}
```
阅读全文