c语言,输入数据n,判断并输出n是否为素数。使用2到sqrt(n)方式
时间: 2024-10-28 19:13:02 浏览: 73
在 C 语言中,你可以通过以下步骤编写一个程序来判断给定的数字 n 是否为素数,同时只检查从 2 到 sqrt(n) 的范围:
1. 首先,我们需要一个函数 `is_prime` 来执行这个任务。在这个函数里,我们接受整数 n 作为参数。
```c
#include <stdio.h>
#include <math.h> // 包含数学库,用于获取平方根
int is_prime(int n) {
if (n <= 1) { // 素数定义为大于1的自然数,0和1不是素数
return 0;
}
if (n == 2 || n == 3) { // 2 和 3 特殊处理,它们是素数
return 1;
}
if (n % 2 == 0 || n % 3 == 0) { // 检查是否能被2或3整除
return 0;
}
int sqrt_n = sqrt(n); // 计算n的平方根,用整数部分即可
for (int i = 5; i <= sqrt_n; i += 6) { // 从5开始,每次增加6,跳过所有3的倍数
if (n % i == 0 || n % (i + 2) == 0) { // 如果n能被当前或下一个偶数整除,则不是素数
return 0;
}
}
return 1; // 没有找到因子,n是素数
}
```
2. 接着,在主函数中获取用户输入的 n,然后调用 `is_prime` 函数进行判断,并打印结果。
```c
int main() {
int n;
printf("请输入一个整数:");
scanf("%d", &n);
if (is_prime(n)) {
printf("%d 是素数\n", n);
} else {
printf("%d 不是素数\n", n);
}
return 0;
}
```
阅读全文