筛选法求素数
本文总阅读量次
课件传送门
原理:计数技巧。重点如下:
- 划掉质数的倍数(必然是合数)
- 因数最大为最后一个数的平方根,即最大数中小的因数找完了,整个搜索就结束了。
有两种筛法:加法和乘法。
加法如下,乘法看课件。
for(int i = 2; i <= sqrt(n); i++){
if(a[i]==0){
for(int j = i*2; j <= n; j += i){
a[j] = 1;
}
}
}
这是最基本的模板,需要熟记。很多筛法相关的题都是从这个模板变化而来。
1494-约数研究
1174-查找特定的合数