栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

输出100以内所有的质数

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

输出100以内所有的质数

public static void main(Stirng[] args){      
        
        boolean isFlag = true;//标识i是否被j除尽,一旦除尽,修改其值
        //获取当前时间距离1970-01-01 00:00:00的毫秒数
        long start = System.currentTimeMillis();
        int count = 0;
        
        for(int i = 2 ; i <= 100000 ;i++){//遍历100000以内的自然数
            //优化二:对本身是质数的自然数有效
            for(int j = 2; j <= Math.sqrt(i); j++){//j:被i去除
                if(i % j == 0){//i被j除尽,意味着就不是质数
                    isFlag = false;
                    break;//优化一:支队本身非质数的自然数是有效的
                }
            }
            if(isFlag == true){
                //输出会占用很大的时间,如果去掉输出,算法的时间会大幅度提升,这边我们用一个计数器来测试
              // System.out.println(i);
                count++;
            }
            //重置isFlag
            isFlag = true;
        }
        
        long end = System.currentTimeMillis();
        
        System.out.println("所用的时间:"+ (start-end));//20105没有优化的 —— 优化一:break:2585 —— 优化二:1014
        											//17110没有优化的 —— 优化一:break:1546 —— 优化二:13
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/333025.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号