public static void main(String[] args) {
boolean isFlag=true; //标识i是否被j除尽,一旦被除尽,修改其值
int count=0; //记录质数的个数
//获取当前时间距离1970-01-01 00:00:00的毫秒数
long start=System.currentTimeMillis();
for (int i = 2; i < 100000; i++) { //遍历100以内自然数
//优化二:对本身是质数的自然数是有效的
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=true;
}
//获取当前时间距离1970-01-01 00:00:00的毫秒数
long end=System.currentTimeMillis();
System.out.println("质数的个数为:"+count);
System.out.println("所花费的时间为:"+(end-start)); //18324毫秒 优化一:break:1554毫秒 优化二:break:17毫秒
}
}
100000以内质数输出优化
最新推荐文章于 2022-06-08 20:01:07 发布