C语言中输入一个数n输出n后的第一个素数
时间: 2025-01-18 20:03:47 浏览: 46
以下是一个C语言程序,用于输入一个数n并输出n之后的第一个素数:
```c
#include <stdio.h>
#include <math.h>
#include <stdbool.h>
bool isPrime(int num) {
if (num <= 1) return false;
if (num == 2) return true;
if (num % 2 == 0) return false;
int sqrtNum = (int)sqrt((double)num);
for (int i = 3; i <= sqrtNum; i += 2) {
if (num % i == 0) return false;
}
return true;
}
int findNextPrime(int n) {
int next = n + 1;
while (true) {
if (isPrime(next)) {
return next;
}
next++;
}
}
int main() {
int n;
printf("请输入一个整数:");
scanf("%d", &n);
int nextPrime = findNextPrime(n);
printf("%d之后的第一个素数是:%d\n", n, nextPrime);
return 0;
}
```
这个程序的工作原理如下:
1. `isPrime`函数用于判断一个数是否为素数。它首先排除小于等于1的数,然后检查2是否为素数,接着排除其他偶数。最后,它使用试除法检查从3到平方根的奇数是否能整除该数。
2. `findNextPrime`函数从输入的数n的下一个数开始,循环调用`isPrime`函数,直到找到下一个素数。
3. 在`main`函数中,程序提示用户输入一个整数,然后调用`findNextPrime`函数,并输出结果。
这个程序可以处理正数、负数和零。对于负数和零,它会输出2,因为2是最小的素数。
阅读全文
相关推荐


















