leetcode_204_Count Primes(C++)(easy)

来源:互联网 发布:java经典书籍排行 编辑:程序博客网 时间:2024/04/29 12:38

Description:

Count the number of prime numbers less than a non-negative number, n.

计算小于n的素数个数

思路:

维基百科https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes

class Solution {
public:
    int countPrimes(int n) {
        if(n <= 2)
            return 0;
        int count = 0;
        
        bool *p = new bool[n];
        
        for(int i = 2; i*i < n; ++i)
        {
            for(int j = i; j*i < n; j++)
            {
                if(!p[i])
                {p[j*i] = true;}
            }
        }
        for(int i = 2; i < n; ++i)
        {
            if(p[i] == false) ++count;
        }
        return count;
    }
};

0 0
原创粉丝点击