Leetcode 204 Count Primes 数论

题意:统计小于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 };

 

posted @ 2016-05-06 11:15  Breeze0806  阅读(200)  评论(0编辑  收藏  举报