leetcode-204 Count Primes

原创 2015年07月06日 21:28:30

Count the number of prime numbers less than a non-negative number, n.
计算小于n的素数的个数。
素数,从2开始,2,3,5,7,11……
素数定义,除了被1和自身整除外,没有其他因数。
最直接的想法就是从2开始到n的平方根,如果有能整除的,就不是素数。
最直接的往往效率最低。

果然,虽然不断剪枝,但是本身的效率低下,再怎么努力也总是超时。
查看了discuss,果然是自己的思路不对,没有找到更高效的算法。

大神的思路是,从2开始到平方根的范围,如果一个数i是素数,那么它的倍数k*i就不是素数,而且,是从i*i开始的。果然厉害!

最后跟着大神的思路总算解决了。
https://leetcode.com/discuss/42097/short-c-sieve-of-eratosthenes-solution
大神代码:

class Solution {
public:
    int countPrimes(int n) {
        vector<bool> prime(n, true);
        prime[0] = false, prime[1] = false;
        for (int i = 0; i < sqrt(n); ++i) {
            if (prime[i]) {
                for (int j = i*i; j < n; j += i) {
                    prime[j] = false;
                }    
            }    
        }
        return count(prime.begin(), prime.end(), true);
    }
};
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

【leetcode】【204】Count Primes

一、问题描述 Description: Count the number of prime numbers less than a non-negative number, n. ...

leetcode 204. Count Primes-素数统计

原题链接:204. Count Primes 按照题目“Show Hint”提示,如果定义一个函数,判断这个数是否是素数,那么效率会很低: public int countPrimes(int...

leetcode 204: Count Primes

问题描述:Description:Count the number of prime numbers less than a non-negative number, n.

LeetCode 204 - Count Primes

一、问题描述Description:Description:Count the number of prime numbers less than a non-negative number, nHi...

LeetCode 204:Count Primes

Description: Count the number of prime numbers less than a non-negative number, n 分析: 题目要求计算小于N的所有...

【LEETCODE】204-Count Primes

Description: Count the number of prime numbers less than a non-negative number, n. 思路: The...

LeetCode笔记:204. Count Primes

寻找小于n的质数个数

Leetcode 204题 Count Primes

题目 :Count PrimesCount the number of prime numbers less than a non-negative number, n.题目分析: 这道题目的意思是写...

Leetcode 204.Count Primes 素性检测

204.Count Primes 问题描述 Count the number of prime numbers less than a non-negative number, n. 翻译:计算小...

【LeetCode-面试算法经典-Java实现】【204-Count Primes(统计质数)】

【204-Count Primes(统计质数)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】代码下载【https://github.com/Wang-Jun-Chao】原题  ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:leetcode-204 Count Primes
举报原因:
原因补充:

(最多只允许输入30个字)