欧拉筛
int prime[1100000],primesize; bool isprime[11000000]; void getlist(int listsize){ memset(isprime,1,sizeof(isprime)); isprime[1]=false; for(int i=2;i<=listsize;i++){ if(isprime[i])prime[++primesize]=i; for(int j=1;j<=primesize&&i*prime[j]<=listsize;j++) { isprime[i*prime[j]]=false; if(i%prime[j]==0) break;//保证了每个合数只会被它的最小素因子筛掉,就把复杂度降到了O(N) } } }
rush!