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-面试算法经典-Java实现】【204-Count Primes(统计质数)】

【204-Count Primes(统计质数)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】代码下载【https://github.com/Wang-Jun-Chao】原题  ...
  • DERRANTCM
  • DERRANTCM
  • 2015年08月27日 06:30
  • 2765

[LeetCode-204] Count Primes(0~n 有多少个质数—4种方法求解)

埃拉托色尼筛选法 (1)先把1删除(现今数学界1既不是质数也不是合数) (2)读取队列中当前最小的数2,然后把2的倍数删去 (3)读取队列中当前最小的数3,然后把3的倍数删去 (4)读取队列中当前最小...
  • xy010902100449
  • xy010902100449
  • 2015年10月23日 15:18
  • 946

Count Primes (质数的个数)

Description: Count the number of prime numbers less than a non-negative number, n. Hint: ...
  • xiangwanpeng
  • xiangwanpeng
  • 2016年10月27日 23:36
  • 188

计算素数个数 Count Primes

题意为给定整数n,求解n以内的整数中有多少个素数(质数) 1.最朴素的做法是:先从2到n-1判断是不是素数,每个数字i都用2到i-1的数字去除,有一个可以整除它,就不是质数。 bool isPri...
  • yanerhao
  • yanerhao
  • 2015年08月02日 10:04
  • 434

【HDU5901】Count primes(大素数模板)

纯记录,膜拜大神。 http://blog.csdn.net/xuanandting/article/details/52577406 //Meisell-Lehmer #incl...
  • oranges_c
  • oranges_c
  • 2016年09月22日 18:31
  • 78

SPOJ PGCD - Primes in GCD Table [莫比乌斯反演+分段+求和优化]【组合数学】

题目连接:https://vjudge.net/problem/10581/origin——————————————————————————————–. PGCD - Primes in GCD T...
  • qq_33184171
  • qq_33184171
  • 2017年02月14日 21:02
  • 468

【SPOJ PGCD】Primes in GCD Table——莫比乌斯反演2

PGCD - Primes in GCD TableJohnny has created a table which encodes the results of some operation – a...
  • huayunhualuo
  • huayunhualuo
  • 2016年05月12日 10:55
  • 345

SPOJ4491 Primes in GCD Table 莫比乌斯反演+分块+前缀和

Description Johnny has created a table which encodes the results of some operation -- a function of...
  • Megumin
  • Megumin
  • 2016年07月15日 10:40
  • 157

HDOJ 5901 Count primes 【2016年沈阳网赛】素数打表

这个题吧,纯属看模板好不好。。。 题意很简单,求【1,n】中的素数有多少个,n很大,1e11的范围 原来普通的数学方法构造的打表是TLE或者MLE的 Lehmer快速求素数 ...
  • kevin66654
  • kevin66654
  • 2016年09月19日 23:06
  • 239

HDU 5901 Count primes (大素数模板题)

题意:求1-n有多少个素数,n可以1e11左右 复杂度大概O(n^(3/4)) #include #define ll long long using namespace std; ...
  • qq_34374664
  • qq_34374664
  • 2017年05月14日 22:11
  • 251
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:leetcode-204 Count Primes
举报原因:
原因补充:

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