埃拉托斯特尼筛法
vis[1]=1;
for (int i=2;i<=n;i++)
if (!vis[i])
{
pri[++tot]=i;
for (int j=i*2;j<=n;j+=i)
vis[j]=1;
}
时间复杂度:O(nloglogn)
欧拉筛法
vis[1]=1;
for (int i=2;i<=n;i++)
{
if (!vis[i])
pri[++tot]=i;
for (int j=1;j<=tot;j++)
{
if (i*pri[j]>n) break;
vis[i*pri[j]]=1;
if (i%pri[j]==0) break;
}
}
时间复杂度O(n)