点击打开链接
//筛法
class Solution {
public:
int countPrimes(int n) {
vector<bool> num(n+1, true);
num[0] = false, num[1] = false;
int res = 0, limit = sqrt(n);
for(int i=2; i<=limit; i++){//2为质数,从2开始筛选
if(num[i]){
for(int j= i*2; j<=n; j+=i) num[j] = false;
}
}
for(int j=2; j<n; j++){
if(num[j]) res+=1;
}
return res;
}
};