#include <stdio.h>
int main() {
const int MAX_NUM = 7919; // 前1000个素数中最大的一个素数
int primes[1000]; // 存储前1000个素数的数组
int count = 0; // 当前已找到的素数数量
int i, j, n;
// 判断一个数是否为素数
int is_prime(int num) {
if (num <= 1) { // 负数、0、1均不是素数
return 0;
}
for (i = 2; i * i <= num; i++) {
if (num % i == 0) { // 如果有因子,则不是素数
return 0;
}
}
return 1;
}
// 找出前1000个素数
for (i = 2; i <= MAX_NUM && count < 1000; i++) {
if (is_prime(i)) {
primes[count++] = i; // 将该素数存入数组中
}
}
// 输出前1000个素数
printf("The first 1000 prime numbers are: ");
for (i = 0; i < 1000; i++) {
printf("%d ", primes[i]);
}
printf("\n");
// 输入要查询的素数位置
printf("Enter the position of the prime number you want to find: ");
scanf("%d", &n);
// 输出第n个素数的值
printf("The %dth prime number is: %d\n", n, primes[n-1]);
return 0;
}