1. 程式人生 > 實用技巧 >列印100以內的質數及優化

列印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  
}

} `