第三題: 請以 C++或 Java 設計一完整程式符合下列要求,答案需標明使用哪一種語言。【25 分】 ● 提供使用者輸入一正整數之介面。範例:顯示"請輸入一正整數 N:" ● 根據使用者之輸入值N,程式運用迴圈巢狀結構,計算並輸出小於或等於N的所有質數。 範例:如果輸入值為 10,顯示"小於或等於 10 的質數:2, 3, 5,7" ● 若 k 為質數,則除了 1 與 k 外,k 無其他因數
詳解 (共 1 筆)
詳解
使用 Java 設計的完整程式
java
複製程式碼
import java.util.Scanner;
java
複製程式碼
import java.util.Scanner;
public class PrimeNumbers {
public static void main(String[] args) {
// 建立 Scanner 物件以接收使用者輸入
Scanner scanner = new Scanner(System.in);
// 建立 Scanner 物件以接收使用者輸入
Scanner scanner = new Scanner(System.in);
// 提供使用者輸入正整數之介面
System.out.print("請輸入一正整數 N:");
int N = scanner.nextInt();
System.out.print("請輸入一正整數 N:");
int N = scanner.nextInt();
// 輸出小於或等於 N 的所有質數
System.out.print("小於或等於 " + N + " 的質數:");
System.out.print("小於或等於 " + N + " 的質數:");
// 運用迴圈巢狀結構計算質數
for (int i = 2; i <= N; i++) {
if (isPrime(i)) {
System.out.print(i + " ");
}
}
for (int i = 2; i <= N; i++) {
if (isPrime(i)) {
System.out.print(i + " ");
}
}
// 關閉 Scanner 物件
scanner.close();
}
scanner.close();
}
// 判斷是否為質數的輔助函數
public static boolean isPrime(int number) {
if (number <= 1) {
return false;
}
for (int i = 2; i <= Math.sqrt(number); i++) {
if (number % i == 0) {
return false;
}
}
return true;
}
}
程式說明
輸入介面:
public static boolean isPrime(int number) {
if (number <= 1) {
return false;
}
for (int i = 2; i <= Math.sqrt(number); i++) {
if (number % i == 0) {
return false;
}
}
return true;
}
}
程式說明
輸入介面:
程式首先建立一個 Scanner 物件以接收使用者輸入,提示使用者輸入一個正整數 N。
計算並輸出質數:
計算並輸出質數:
程式使用一個迴圈從 2 遍歷到 N,對每個數字使用 isPrime 函數來判斷是否為質數。
如果是質數,則將其輸出。
判斷質數的輔助函數:
如果是質數,則將其輸出。
判斷質數的輔助函數:
isPrime 函數判斷一個數字是否為質數。方法是檢查從 2 到該數字平方根的所有數字,是否有能整除該數字的情況。如果有,則該數字不是質數;否則,該數字是質數。