用c编程找出前1000个素数存放到数组中,然后输入一个整数N,输出第N个素数的值
时间: 2023-06-11 12:09:15 浏览: 1165
下面是一个用C编程找出前1000个素数存放到数组中,并输出第N个素数的值的例子:
```c
#include <stdio.h>
int main() {
int primes[1000] = {2}; // 存放前1000个素数的数组
int count = 1; // 当前已经找到的素数个数
int n, i, j, is_prime; // n为输入的整数,i和j为循环计数器,is_prime为判断素数的标志
// 找出前1000个素数
for (i = 3; count < 1000; i += 2) { // 从3开始每次增加2,因为偶数不可能是素数
is_prime = 1;
for (j = 0; j < count; j++) {
if (i % primes[j] == 0) { // 如果i能被primes[j]整除,说明i不是素数
is_prime = 0;
break;
}
}
if (is_prime) { // 如果i是素数,加入primes数组中
primes[count] = i;
count++;
}
}
// 输入整数N,输出第N个素数的值
printf("请输入一个正整数N(1 ≤ N ≤ 1000):");
scanf("%d", &n);
if (n < 1 || n > 1000) { // 如果输入的整数不在1~1000的范围内,输出错误信息
printf("输入的整数不在1~1000的范围内!");
} else {
printf("第%d个素数是:%d", n, primes[n-1]); // 第N个素数的下标是N-1
}
return 0;
}
```
这个程序的基本思路是:先找出前1000个素数,然后根据输入的整数n输出第n个素数的值。在找素数的过程中,我们用一个数组primes来存放已经找到的素数,并用一个变量count来记录当前已经找到的素数个数。在每一次循环中,我们判断当前的数i是否是素数,如果是就将其加入到primes数组中,并将count加1。最后,根据输入的整数n输出第n个素数的值,注意第n个素数的下标是n-1。
阅读全文