【JAVA】計算1~100以內素數和

首先是素數的定義:

素數定義爲在大於1的自然數中,除了1和它本身以外不再有其他因數。【百度百科】
特殊點的:1既不是素數也不是合數,2是素數。

兩種方法求素數:
第一種 【常用】

public class work02 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int add = 0;//用來記錄素數和
		
		//尋找素數
		for(int i = 2; i<=100; i++) {
			boolean flag = true; //初始默認是素數
			for(int j = 2; j < i ;j++) {
				if(i%j == 0) {
					flag = false;//不是素數
					break;
				}
			}
			if(flag) {
				add += i;
			}
		}
		System.out.println(add);
	}

}

第二種 【節約時間】
和第一種差別就在二重循環的判斷條件上,注意此處是用<=
只判斷到數字的開方的位置

public class work02 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int add = 0;//用來記錄素數和
		
		//尋找素數
		for(int i = 2; i<=100; i++) {
			boolean flag = true;
			for(int j = 2; j<= (int)Math.sqrt( i ) ;j++) { 
				if(i%j == 0) {
					flag = false;//不是素數
					break;
				}
			}
			if(flag) {
				add += i;
			}
		}
		System.out.println(add);
		

	}

}

最後結果:1060

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章