LeetCode204. Count Primes
2016-01-28 20:11
375 查看
题目链接:
https://leetcode.com/problems/count-primes/题目描述:
找出n以内的素数个数。题目分析:
题目下面那个提示写的太好了,值得mark啊。埃拉托色尼筛选法,针对自然数列中的自然数而实施的,用于求一定范围内的质数。
一个合数总是可以分解成若干个质数的乘积,那么如果把质数的倍数都去掉,那么剩下的就是质数了。
任意合数肯定都有一个因子小于合数的开方。
比如找100以内的素数。
首先2是素数,把2的倍数去掉;此时3没有被去掉,可认为是素数,所以把3的倍数去掉;再到5,再到7,而因为8,9,10刚才都被去掉了,而任意合数肯定都有一个因子小于合数的开方(100开方10),因此当去掉2,3,5,7的倍数后剩下的都是质数了。
附上提示里面的一张图。
代码:
class Solution { public: int countPrimes(int n) { vector<bool> isPrime(n,true); for(int i=2;i<=sqrt(n);i++){ if(!isPrime[i]){ continue; } for(int j=i*i;j<n;j+=i){ isPrime[j]=false; } } int cnt=0; for(int i=2;i<n;i++){ if(isPrime[i]){ cnt++; } } return cnt; } };
相关文章推荐
- c语言实现hashmap(转载)
- Ruby中Hash的11个问题解答
- Ruby简明教程之数组和Hash介绍
- 在C#中生成与PHP一样的MD5 Hash Code的方法
- js中hash和ico的关联分析
- Javascript SHA-1:Secure Hash Algorithm
- 理解php Hash函数,增强密码安全
- PHP利用hash冲突漏洞进行DDoS攻击的方法分析
- PowerShell中定义哈希散列(Hash)和调用例子
- Redis String 类型和 Hash 类型学习笔记与总结
- php操作redis中的hash和zset类型数据的方法和代码例子
- Perl 哈希Hash用法之入门教程
- perl哈希hash的常见用法介绍
- php自定义hash函数实例
- php对文件进行hash运算的方法
- php常用hash加密函数
- PHP Hash算法:Times33算法代码实例
- php的hash算法介绍
- memcache一致性hash的php实现方法
- Mysql中的Btree与Hash索引比较