c语言输入一个大于3的整数n,判定它是否为素数。 Input 输入一个整数n (3≤n≤107 ) Output 输出一行,先输出这个数,如果这个数是素数,则输出“ is a primer!”,否则,输出“ is not a primer!”。请注意空格。
时间: 2024-12-08 12:20:55 浏览: 14
你可以使用C语言编写以下程序来判断输入的整数n是否为素数。以下是简单的步骤和代码示例:
首先,我们需要定义一个函数`is_prime`来检查一个数是否是素数。对于小于等于10^7的数,我们可以遍历从2到sqrt(n)的所有整数,看它们能否整除n。如果能整除,那么n就不是素数;反之则是素数。
```c
#include <stdio.h>
#include <math.h> // 引入math库,使用sqrt()函数
int is_prime(int n) {
if (n <= 1) { // 素数定义为大于1的自然数
return 0;
}
if (n == 2 || n == 3) { // 2和3是特例,直接返回真
return 1;
}
if (n % 2 == 0 || n % 3 == 0) { // 排除所有偶数和3的倍数
return 0;
}
for (int i = 5; i * i <= n; i += 6) { // 只需要检查6k±1型的数
if (n % i == 0 || n % (i + 2) == 0) {
return 0;
}
}
return 1; // 如果没找到因子,说明n是素数
}
int main() {
int n;
printf("Enter an integer between 3 and 10^7: ");
scanf("%d", &n);
if (n >= 3 && n <= 1e7) {
if (is_prime(n)) {
printf("%d is a prime number!\n", n);
} else {
printf("%d is not a prime number.\n", n);
}
} else {
printf("Invalid input! The number must be between 3 and 10^7.\n");
}
return 0;
}
```
阅读全文