Java-判斷質數和輸出輸入數以內的所有質數

判斷是不是質數:

public class PrimeNumber {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int num1 = scanner.nextInt();
		// 默認輸入的數是質數,設置 flag = true
		boolean flag = true;
		// 判斷一個數是不是質數,只需判斷 2 到 num1 的平方根,減少循環次數
		for (int i = 2; i <= Math.sqrt(num1); i++) {
			// 如果 輸入數 能被 2 ~~ 根號num1 之間的值整除,說明不是質數
			if (num1 % i == 0) {
				flag = false;
				break;
			}
		}
		if (flag) {
			System.out.println("是質數");
		} else {
			System.out.println("不是質數");
		}
	}
}

接受用戶輸入的一個數,打印出這個數(包括這個數)以內的所有質數,代碼如下:

public class PrimeNumber {
	public static void main(String[] args) {
		Scanner scanner = new  Scanner(System.in);
		// 獲取輸入的數值
		int num = scanner.nextInt();
		// 遍歷 2 ~~ input 之間 所有數,有=包括input
		for (int i = 2; i <= num; i++) {
			// flag = true是代表質數,flag = false不是代表質數
			boolean flag = true;
			// 判斷 i 是不是質數,只要在 2 ~~ i 之間不能被 input 整除
			for (int j = 2; j <= Math.sqrt(i); j++) {
				// 如果i能整除j說明 i不是質數,flag設置爲 false
				if (i % j == 0) {
					flag = false;
					break;
				}
			}
			// 如果 flag = true 說明是質數
			if (flag) {
				System.out.print(i + " ");
			}
		}
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章