求助:编程找出前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; }