- 埃氏素数筛选法
const int NN = 1e6+10; int prime[NN]; // prime[i]== 0->i为素数 void init(){ prime[0] = 1; prime[1] = 1; for(int i = 2;i<=N/i;i++){ //N/i会更好,比起sqrt(N)因为每次判断都需要计算sqrt,而sqrt计算速度比较慢,i*i<=N就不说了,i*i可能会爆int 数据再大一点的话 if(prime[i] == 0){ for(int k = 2*i;k<=N;k+=i){ prime[k] = 1; } } } }