题意:统计小于n的质数个数。
作为一个无节操的楼主,表示用了素数筛法,并没有用线性素数筛法。
是的,素数筛法并不是该题最佳的解法,线性素数筛法才是。
至于什么是素数筛法,请百度吧。
class Solution {
public:
int countPrimes(int n) {
bool *isp= new bool[n];
for (int i = ; i < n; ++i)
{
isp[i]= true;
}
for (int i = ; i * i< n; ++i)//素数筛法
{
if(isp[i]){
for(int j = i + i; j < n; j+=i){
isp[j] = false;
}
}
}
int ans = ;
for (int i = ; i < n; ++i){
ans += isp[i];
}
delete isp;
return ans;
}
};