(java)Count Primes
2016-01-08 10:38
369 查看
Count the number of prime numbers less than a non-negative number, n.
思路:设置一个标志位数组flag[i],表示i是否已经被标记了。
循环sqrt(n) 次,把i的倍数的全部标记上。
最后没有标记的就是素数。比如n=15
把2的倍数 4,6,8,10,12,14标记上
把3的倍数 6 9,12;
剩下的2,3,5,7,11,13就是素数
代码如下(已通过leetcode)
public class Solution{
public int countPrimes(int n){
boolean[] flag=new boolean
;
int count=0;
for(int i=2;i<n;i++)
flag[i]=false;
for(int i=2;i<Math.sqrt(n);i++){
if(!flag[i]){
for(int j=i;j*i<n;j++)
flag[j*i]=true;
}
}
for(int i=2;i<n;i++) {
if(!flag[i]) count++;
}
return count;
}
}
思路:设置一个标志位数组flag[i],表示i是否已经被标记了。
循环sqrt(n) 次,把i的倍数的全部标记上。
最后没有标记的就是素数。比如n=15
把2的倍数 4,6,8,10,12,14标记上
把3的倍数 6 9,12;
剩下的2,3,5,7,11,13就是素数
代码如下(已通过leetcode)
public class Solution{
public int countPrimes(int n){
boolean[] flag=new boolean
;
int count=0;
for(int i=2;i<n;i++)
flag[i]=false;
for(int i=2;i<Math.sqrt(n);i++){
if(!flag[i]){
for(int j=i;j*i<n;j++)
flag[j*i]=true;
}
}
for(int i=2;i<n;i++) {
if(!flag[i]) count++;
}
return count;
}
}
相关文章推荐
- Spring学习笔记---1-Spring基础介绍
- Spring学习总结
- Java调试
- java开发记录
- Java动态代理(jdk代理和cglib代理)
- Java -- 内存机制
- 使用gradle做第一个java项目
- (java)Valid Palindrome
- javaweb学习总结(一):Servlet开发(一)
- 对JavaEE中session的理解
- Java-回调
- 初步了解 Java类加载子系统
- 使用Java抓取网页中所有的链接
- Spring包详解
- Java EE V7.0学习笔记-JBoss Tools 4.3.0.Final安装失败
- java split()
- Spring Data Jpa 自定义属性查询规则
- Eclipse下编写java程序突然不会自动生成R.java文件和包的解决办法
- Java线程大总结
- Spring事务隔离级别介绍