打印100以内的质数及优化

`public class Demo3{
public static void main(String[] arg){

//获取当前时间距离1970-01-01 00:00:00的毫秒数
long start = System.currentTimeMillis();

//标识 i 是否被 j 除尽,一旦除尽,修改其值
boolean flag = true;

//实现打印100000以内的质数
System.out.println("100以内的质数:");
for(int i=2;i<=100000;i++){ //遍历100以内的自然数
for(int j=2;j<i;j++){
//从2开始到(i-1)只要有一个 j 能整除 i,说明这个i不是质数,并修改标识符为false
if(i%j == 0){
flag = false;

}
//优化方式一:遇到第一个j 能整除 i ,就退出循环,不用执行其他的 i%j(只对本身是非质数的自然数起到优化作用)
break;
}
if(flag == true){
//当flage还是为true,说明上面所有的j都没有整除i,那么这个 i 就是质数,打印出来
System.out.print(i + "\t");
}
// 重置 flag 为true
flag = true;
}
//获取当前时间距离1970-01-01 00:00:00的毫秒数
long end = System.currentTimeMillis();

//程序总耗时
System.out.println("程序总耗时:"+(end-start) + "ms");
//90232 优化一:9539
}
} `

posted @ 2020-12-06 16:18  dog_IT  阅读(268)  评论(0)    收藏  举报