题目描述
思路分析
筛质数
线性筛模板,线性筛的核心:每个合数只会被自己的最小质因子筛除
代码实现
class Solution {
public:
int countPrimes(int n) {
vector<bool> st(n+1);
vector<int> primes;
for(int i=2;i<n;i++){
if(!st[i]) primes.push_back(i);
for(int j=0;i*primes[j]<n;j++){
st[primes[j]*i]=true;
if(i%primes[j]==0) break;
}
}
return primes.size();
}
};