线性筛·代码

10 分钟

维护质数表 pr[],对每个 i 用已知质数去筛。for(int i=2;i<=n;i++){ if(!notp[i]) pr[cnt++]=i; for(int j=0;j<cnt&&(long long)i*pr[j]<=n;j++){ notp[i*pr[j]]=1; if(i%pr[j]==0) break; } }。那句 break 是线性的关键。

小纸条

去掉 if(i%pr[j]==0) break; 会怎样?

登录 后可看答案

线性筛·代码 · 算法进阶 · op599 课程