题意:统计小于n的质数个数。
作为一个无节操的楼主,表示用了素数筛法,并没有用线性素数筛法。
是的,素数筛法并不是该题最佳的解法,线性素数筛法才是。
至于什么是素数筛法,请百度吧。
1 class Solution { 2 public: 3 int countPrimes(int n) { 4 bool *isp= new bool[n]; 5 for (int i =0 ; i < n; ++i) 6 { 7 isp[i]= true; 8 } 9 for (int i = 2; i * i< n; ++i)//素数筛法 10 { 11 if(isp[i]){ 12 for(int j = i + i; j < n; j+=i){ 13 isp[j] = false; 14 } 15 } 16 } 17 int ans = 0; 18 for (int i = 2; i < n; ++i){ 19 ans += isp[i]; 20 } 21 delete isp; 22 return ans; 23 } 24 };