求助:编程找出前1000个素数存放到数组中,然后输入一个整数N,输出第N个素数的值。
输入格式:输入有多组数据,为若干个空格分隔的整数。
输出格式:
对于输入数据中每个n,输出第n个素数的值,多个输出之间以逗号分隔。
输入样例:
1 2 3 4 5 4 3
输出样例:
2,3,5,7,11,7,5
//大佬们救命啊,我真的弄不出来


[此贴子已经被作者于2022-12-3 23:08编辑过]
程序代码:
int a(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 num[1001], cnt = 1, i = 1;
int in[1000];
while (cnt < 1000)
{
if (a(i))
num[cnt++] = i;
i++;
}
cnt = 0;
while (~scanf("%d", &i))
{
in[cnt++] = i;
}
for (i = 0; i < cnt; i++)
printf("%d%c", num[in[i]], (i == cnt - 1) ? '\0' : ',');
return 0;
}