列印100以內的質數及優化
阿新 • • 發佈:2020-12-06
`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 }
} `