【题目描述】
Description:
Count the number of prime numbers less than a non-negative number, n.
【思路】很经典的题目,计算n之内有多少个素数,不过题目有时间要求,一开始用原始做法直接TLE了,现在代码中判断素数的方法是最为经典的,要牢牢记住。
【代码】
class Solution {
public:
int countPrimes(int n) {
int cnt=0;
bool prime[n];
for(int i=2;i<n;i++){
prime[i]=true;
}
for(int i=2;i*i<n;i++){
if(!prime[i]) continue;
for(int j=i*i;j<n;j+=i){
prime[j]=false;
}
}
for(int i=2;i<n;i++){
if(prime[i]) cnt++;
}
return cnt;
}
};