c语言 输入一个正整数n,如果n不是质数,则输出-1,否则从2开始递增,输出第n个质数
时间: 2024-02-15 19:05:05 浏览: 97
好的,这是一个比较常见的算法题。我可以给你提供一个 C 语言的代码示例:
```c
#include <stdio.h>
int is_prime(int n) {
if (n <= 1) {
return 0;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int n;
scanf("%d", &n);
int count = 0;
int i = 2;
while (count < n) {
if (is_prime(i)) {
count++;
if (count == n) {
printf("%d\n", i);
return 0;
}
}
i++;
}
printf("-1\n");
return 0;
}
```
其中 `is_prime` 函数用于判断一个数是否为质数,如果是则返回 1,否则返回 0。主函数中,我们先读入一个正整数 `n`,然后依次判断从 2 开始的每一个数是否为质数,如果是则将计数器 `count` 加一,当 `count` 等于 `n` 时就输出这个数并结束程序,如果遍历完了所有可能的数还没有找到第 `n` 个质数,则输出 -1。
阅读全文
相关推荐















