埃氏筛法&&欧拉筛
埃氏筛法
int vis[maxn],p[maxn],cnt; void ai(int n) { for(int i=2;i<=n;i++) { if(!vis[i]) { p[cnt++]=i; for(int j=i+i;j<=n;j+=i) { vis[j]=1; } } } }
欧拉筛
int vis[maxn],p[maxn],cnt; void oula(int n) { for(int i=2;i<=n;i++) { if(!vis[i]) p[cnt++]=i; for(int j=0;i*p[j]<=n;j++) { vis[i*p[j]]=1; if(i%p[j]==0) break; } } }