JAVA判斷質數和輸出輸入數以內的所有質數
阿新 • • 發佈:2018-12-15
判斷是不是質數:
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 + " ");
}
}
}
}