204. Count Primes
204. Count Primes
求小于 N 的素数个数,N >= 0
素数筛
class Solution {
public:
int countPrimes(int n) {
if (n == 0) return 0;
vector<bool> isPrime(n, true);
isPrime[0] = isPrime[1] = false;
for(int i=2;i<sqrt(n);++i) {
if (isPrime[i]) {
// 避免重复标记,从 i*i 开始
for(int j=i*i;j<n;j+=i) {
isPrime[j] = false;
}
}
}
return count(isPrime.begin(), isPrime.end(), true);
}
};#math