204:Count Primers
来源:互联网 发布:金融软件开发怎么样 编辑:程序博客网 时间:2024/05/18 07:27
target:Count the number of prime numbers less than a non-negative number n
我第一次编写的解决代码,时间复杂度是O(n2),在40多万时就挂了。
//O(n2),cost too much timepublic int simplecountPrimes(int n) {int num = 0;for (int i = 2; i < n; i++) {boolean flag = isPrimer(i);if(flag == true){num++;}}return num; }public boolean isPrimer(int m){boolean flag = true;for (int i = 2; i < m; i++) {int remainder = m%i;if(remainder==0){flag = false;break;}}return flag;}
这里着重介绍埃拉托斯特尼筛法(Sieve of Eratosthenes):
核心思想:逐个遍历数字,数字的倍数必然不是素数,直接去除。
p * q = n; 当p大于q之后,内容出现重复,故我们只需要思考p <√n的开方内的数字的遍历。
同样的根据上面这行思想,当我们对√n以下数字遍历时,我们考虑的倍数的起点一定是i * i (此时正在遍历的数字)//Sieve of Eratosthenes, O(nlglgn)public int countPrimers(int n){int num = 0;boolean[] isPrimers = new boolean[n];for (int i = 0; i < isPrimers.length; i++) {isPrimers[i] = true;}for (int i = 2; i*i < n; i++) {if(!isPrimers[i]){continue;}for(int j = i*i;j < n ;j += i){isPrimers[j] = false;}}for (int i = 2; i < n; i++) {if(isPrimers[i] == true){num++;}}return num;}
0 0
- 204:Count Primers
- python for else primers
- c++ primers关联容器map代码总结
- LeetCode 204 - Count Primes
- LeetCode 204-Count Primes
- [LeetCode 204] Count Primes
- leetcode 204: Count Primes
- LeetCode 204:Count Primes
- 204 Count Primes
- leetcode-204 Count Primes
- Count Primes - LeetCode 204
- Leetcode 204 Count Primes
- leetcode[204]:Count Primes
- Leetcode 204 Count Primes
- leetcode-204 Count Primes
- leetcode 204:Count Primes
- 204Count Primes
- leetcode-204-Count Primes
- iOS Reason: image not found
- 大学物理 我和你一起学 GROUP1 L1
- 第一次通过网易的云课堂拿到证书,开心
- 使用slf4j统一日志输出到log4j
- 项目中遇到的问题
- 204:Count Primers
- 基于canvas的二维码邀请函生成插件
- Linux内核中CONFIG_OF宏的解释
- Java语言基础
- win7安装SQL Server2008时,用户权限设置问题导致安装失败
- CXF wsdl2java生成java代码
- 测绘的几个阶段
- DICOM图像类型代表的含义
- 点击文本框放大