欧拉筛_v2

欧拉筛(线性筛)模板整理。

欧拉筛(线性筛)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
struct Euler{
vector<int>primes; // 存储质数
vector<bool>comp; // 标记合数

Euler(int n){
comp.resize(n + 1);
for(int i = 2; i <= n; i++){
if(!comp[i]) primes.emplace_back(i);
for(int j = 0; i * primes[j] <= n; j++){
comp[i * primes[j]] = true;
if(!(i % primes[j])) break;
}
}
}
};