Description:
Count the number of prime numbers less than a non-negative number, n.
其他人写法:
主要思路就是质数得从奇数中找,而且考察的该数不能是前面较小的奇数的倍数。
class Solution {
public://考虑的范围是:首先是奇数,然后质数是那些不是前面奇数的倍数的数
int countPrimes(int n) {
if(n<=2) return 0;
int sum=1;
int upper=sqrt(n);
vector<bool> passed(n,false);
for(int i=3;i<n;i+=2)
{
if(!passed[i])
sum++;
if(i>upper)
continue;
for(int j=i*i;j<n;j+=i)
{
passed[j]=true;
}
}
return sum;
}
};