Leetcode(59)-Count Primes
来源:互联网 发布:梅甘娜rs 知乎 编辑:程序博客网 时间:2024/05/16 16:15
题目:
Description:Count the number of prime numbers less than a non-negative number, n.
思路:
- 题意:求小于给定非负数n的质数个数
西元前250年,希腊数学家厄拉多塞(Eeatosthese)想到了一个非常美妙的质数筛法,减少了逐一检查每个数的的步骤,可以比较简单的从一大堆数字之中,筛选出质数来,这方法被称作厄拉多塞筛法(Sieve of Eeatosthese)。具体操作:先将 2~n 的各个数放入表中,然后在2的上面画一个圆圈,然后划去2的其他倍数;第一个既未画圈又没有被划去的数是3,将它画圈,再划去3的其他倍数;现在既未画圈又没有被划去的第一个数 是5,将它画圈,并划去5的其他倍数……依次类推,一直到所有小于或等于 n 的各数都画了圈或划去为止。这时,表中画了圈的以及未划去的那些数正好就是小于 n 的素数。
代码:
public class Solution { public int countPrimes(int n) { if(n < 3){ return 0; } boolean[] prime =new boolean[n]; prime[2] = false; for(int i = 3;i < n;i++){ if(i % 2 == 0){ prime[i] = true; }else{ prime[i] = false; } } for(int a = 3;a < n;a= a+2){ if(!prime[a]){ if(a * a < n){ for(int j = 2;a * j < n;j++){ prime[a*j] = true; } } } } int count = 0; for(int b = 2;b < n;b++){ if(!prime[b]){ count++; } } return count; }}
0 0
- Leetcode(59)-Count Primes
- Leetcode(204) Count Primes
- Leetcode:204. Count Primes(JAVA)
- LeetCode 204. Count Primes(统计素数)
- (LeetCode)Count Primes --- 统计素数(质数)
- 【leetcode】204. Count Primes(Python & C++)
- LeetCode--Count Primes(素数个数)Python
- LeetCode 204 - Count Primes
- [LeetCode] Count Primes
- LeetCode #Count Primes#
- 【leetcode】Count Primes
- LeetCode 204-Count Primes
- [LeetCode] Count Primes
- [LeetCode 204] Count Primes
- [LeetCode]Count Primes
- leetcode 204: Count Primes
- Count Primes Leetcode JAVA
- LeetCode OJ Count Primes
- 一个面试大牛的经历
- setImageResource和setBackgroundResource的区别
- 一键清除SD卡数据
- 逆置/反转单链表(C语言)
- VPN网络访问问题
- Leetcode(59)-Count Primes
- 利用STL的set可以使查询效率变高(2016.4浙江科技学院校赛)
- 码农小汪-设计模式-工厂方法模式 每一产品都有一个具体的实现工厂
- 【GDOI2016模拟3.9】暴走的图灵机
- Android滑动(二)——滑动方法之layout() 及相应封装API
- 友盟自动更新产品介绍
- iOS 隐藏多余的cell
- ListView的使用(一)
- ActiveX控件 姿态仪 高度仪 水平仪...