一个获取输入范围内所有质数与质数个数的java小算法
2016-06-01 00:00
246 查看
摘要: 暴力算法才是真爱,谁叫脑容量不够
直接贴到main方法,运行,输入单个数字即可
Scanner sca = new Scanner(System.in); int n = sca.nextInt(); long t1 = System.currentTimeMillis(); TreeSet<Integer> hehe = new TreeSet<Integer>(); hehe.add(2); //只需要判断奇数是否是质数就可以了 for(int i=2;(2*i-1)<=n;i++){ //求平方根 int sq = (int) Math.sqrt(2*i-1); //判断平方根是否大于2,否,则是处理3,5,7 if(sq <= 2){ for(int j=2;j<(2*i-1);j++){ if((2*i-1)%j == 0){ break; } //判断是否是素数,能除到比该值小一,且余数不为0,肯定是素数 if((2*i-1)%j != 0 && j == (2*i-1)-1){ hehe.add(2*i-1); } } }else{ for(int k=2;k<=sq;k++){ if((2*i-1)%k == 0){ break; } //判断是否是素数,能除到该值平方根的绝对值,且余数不为0,肯定是素数 if((2*i-1)%k != 0 && k == sq){ hehe.add(2*i-1); } } } } System.out.println("素数:"+hehe); long t2 = System.currentTimeMillis(); System.out.println(t2-t1); System.out.println(n+"以内共有"+hehe.size()+"个素数");
直接贴到main方法,运行,输入单个数字即可
相关文章推荐
- 书评:《算法之美( Algorithms to Live By )》
- 动易2006序列号破解算法公布
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C#实现的算24点游戏算法实例分析
- c语言实现的带通配符匹配算法
- 浅析STL中的常用算法
- 算法之排列算法与组合算法详解
- C++实现一维向量旋转算法
- Ruby实现的合并排序算法
- C#折半插入排序算法实现方法
- 基于C++实现的各种内部排序算法汇总
- C++线性时间的排序算法分析
- C++实现汉诺塔算法经典实例
- PHP实现克鲁斯卡尔算法实例解析