解释:在筛质数时,我们会发现,筛去2后,2的倍数4、6、8等一定不是素数;筛去3后,3的倍数6、9、12等一定不是倍数。简单模拟这个过程如下
时间复杂度: O(NloglogN)
百度百科: 点击这里!埃拉托斯特尼筛法!简称埃氏筛或爱氏筛!
int primes[10000010], cnt;
bool vis[10000010];
void get_primes2(int N)
{
for(int i = 2; i <= N; i++)
{
if(vis[i]) continue;
primes[cnt++] = i;
for(int j = i; j <= N; j += i) vis[j] = true;
}
}