题目:
Description:
Count the number of prime numbers less than a non-negative number, n.
分析:
利用已知的素数来去掉接下来的数字即可。
代码:
class Solution {
public:
int countPrimes(int n) {
if(n==0||n==1||n==2)return 0;
int count=1,sq=sqrt(n);
bool *primes=new bool[n];
for(int i=3;i<n;i+=2){
if(!primes[i]){
count++;
if(i<=sq){
for(int j=i<<1;j<n;j+=i)
primes[j]=true;
}
}
}
return count;
}
};