java编程查找质数代码优化
来源:互联网 发布:汤姆叔叔 javascript 编辑:程序博客网 时间:2024/06/06 03:46
来达内培训,今天老师布置了一个作业,是关于求一个范围内的所有质数的问题,我一想,这个简单啊,以前脑子里也依稀记得一个方法,所以就嗖嗖嗖写出来了,代码如下:
import java.util.Scanner;public class PrimeNum {public static void main(String[] args) {Scanner scan = new Scanner(System.in);System.out.print("请输入查找质数的范围:2~");int maxNum = scan.nextInt();int k = 0;for(int i = 2;i<=maxNum;i++){int j;for(j = 2;j<=i;j++){if(i%j ==0){break;}}if(i == j){k++;System.out.print(i+" ");if(k%10 == 0){System.out.println("\n");}}}System.out.println("\n共有"+k+"个质数");}}然后一看,网上搜索第一个也是这样算的,好了,输入100,结果出来啦
结果第二天,听老师讲,我以为老师会说这个方法,没想到老师先说了质数的规律,如果要判断一个数是不是是质数,那这个数除从2到这个数的平方根之内的数就可以判断出
来
代码如下:
import java.util.Scanner;//开关的用法://经典案例:查找质数public class PrimeNum {public static void main(String[] args) {Scanner scan = new Scanner(System.in);System.out.print("请输入查找质数的范围:2~");int maxNum = scan.nextInt();int k = 0;long startTime = System.currentTimeMillis();for (int i = 2; i <= maxNum; i++) {boolean flag = true; // 先假设为质数for (int j = 2; j <= Math.sqrt(i); j++) {// for(int j = 2;j<i;j++){if (i % j == 0) {flag = false;break;}}if (flag) {k++;System.out.print(i + " ");if (k % 10 == 0) { // 每十位换一行System.out.println("\n");}}}long endTime = System.currentTimeMillis();System.out.println("\n查找用时:" + (endTime - startTime) + "毫秒");System.out.println("\n共有" + k + "个质数");}}
其中我加了一个计算程序运行时间的代码,不试不知道,于是我输入范围到10W,输出结果,首先是老师代码的用时:
然后是我那个代码用时:
差距一下就出来了!
代码的优化很重要,今天学习到了!
0 0
- java编程查找质数代码优化
- java代码优化编程
- Java代码优化编程
- java代码优化编程
- Java代码优化编程
- Java代码优化编程
- Java代码优化编程
- Java代码优化编程
- Java代码优化编程
- java代码优化编程
- Java代码优化编程
- Java代码优化编程
- java代码优化编程(一)
- java代码优化编程(1)
- java代码优化编程(2)
- Java代码优化编程详解
- Java编程之代码优化
- 打印质数的代码实现及优化
- android 自定义 loader实现
- Android studio 查看 取消 所有断点
- 对手机丢失后可能产生的危害的思考
- webdriver实现2个或两个以上窗口间切换的方法
- java中正则模糊匹配字符串
- java编程查找质数代码优化
- ArcGIS Engine栅格数据使用总结
- 研究两天python函数式编程的总结和心得
- #120 Word ladder
- Java.Web学习笔记 JSTL
- ThinkPHP 3.1.2 查询方式
- JavaWeb学习总结(使用Session防止表单重复提交)
- 博弈论 来来来 套路一波(ACM中SG函数应用)
- Android(开源项目) 滑动选择器 WheelView 源码