无需多言直接上代码吧!
1 //Eratosthenes 筛法(埃拉托斯特尼筛法) 2 memset(check, false, sizeof(check)) 3 int tot = 0; 4 for(int i=2; i<=N; i++) 5 if(!check[i]) 6 { 7 prime[tot++] = i; 8 for(int j=i*2; j<=N; j+=i) 9 check[j] = true;10 }11 12 //Euler 筛法(欧拉筛法)--线性筛选13 memset(check, false, sizeof(check));14 int tot = 0;15 for(int i=2; i<=N; i++)16 {17 if(!check[i]) prime[tot++] = i;18 for(int j=0; jN) break;21 check[i*prime[j]] = true;22 if(i % prime[j]==0) break;23 } 24 }