首页 > 其他 > 详细

使用break和Math.sqrt()对输出质数的优化与使用label和continue统计质数个数

时间:2020-02-09 13:28:00      阅读:59      评论:0      收藏:0      [点我收藏+]
package 质数;
import java.lang.Math;
public class 质数 {

    public static void main(String[] args) {
        long start = System.currentTimeMillis();
        PrimeNumber();
        System.out.println("");
        System.out.println("------------------------");
        PrimeNumber2();
        long end = System.currentTimeMillis();
        System.out.println("");
        System.out.println("------------------------");
        System.out.println((end-start)+"ms");
    }
    public static void PrimeNumber() {
        
        for(int i = 2 ; i <=  100; i++) {
            boolean flag = false;
            for(int j  = 2 ; j <= Math.sqrt(i)/*优化2*/; j++) {
                if(i % j == 0) {
                    flag =true;
                    break;//优化1
                }
            }
            if(!flag) {
                System.out.print(i+" ");
            }
        }
    }
    public static void PrimeNumber2() {
        int count = 0;//记录质数的个数
        label:for(int i = 2 ; i <=  100; i++) {
            for(int j  = 2 ; j <= Math.sqrt(i); j++) {
                if(i % j == 0) {
                    continue label;
                }
            }
            //能执行到此步骤的,都是质数
            count++;
        }
        System.out.println(count);

    }
}

结果:

技术分享图片

使用break和Math.sqrt()对输出质数的优化与使用label和continue统计质数个数

原文:https://www.cnblogs.com/MySweetheart/p/12286763.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!