提交时间:2024-01-26 14:34:22

运行 ID: 128970

#include <cstdio> #include <cstring> bool isPrime[100000010]; //isPrime[i] == 1表示:i是素数 int Prime[6000010], cnt = 0; //Prime存质数 void GetPrime(int n) { memset(isPrime, 1, sizeof(isPrime)); isPrime[1] = 0; for(int i = 2; i <= n; i++) { if(isPrime[i]) Prime[++cnt] = i; for(int j = 1; j <= cnt && i*Prime[j] <= n; j++) { isPrime[i*Prime[j]] = 0; if(i % Prime[j] == 0) break; } } } int main() { int n, q=1; GetPrime(100000); while (q<=cnt) { printf("%d ", Prime[q]); q++; } return 0; }