阿摩線上測驗 登入

申論題資訊

試卷:108年 - 108 地方特考_資訊處理_四等:程式設計概要#81378
科目:程式設計
年份:108年
排序:0

申論題內容

二、質數(prime number)是大於 1 的自然數中,只能被 1 和自身整除的數。 例如,2, 3, 5, 7, …。試在不使用 Java 中質數相關 API 的情況下,撰寫 Java main()程式(不要另訂 class, method 或 function),來找出小於 500 的所有質數,其結果列印必須如下:(25 分)5df9cf7741690.jpg

詳解 (共 3 筆)

詳解 提供者:hchungw
 Java 程式,它計算並打印出所有小於 500 的質數,並在結束時顯示找到的質數數量。請注意,這段代碼應該被放在 main 方法中。
java
Copy code
public class Main {
    public static void main(String[] args) {
        int countPrimes = 0;
        
        for (int number = 2; number < 500; number++) {
            if (isPrime(number)) {
                System.out.println(number + " is prime.");
                countPrimes++;
            }
        }
        
        System.out.println(countPrimes + " primes found.");
    }
    public static boolean isPrime(int number) {
        // 2 is the smallest prime number
        if (number <= 1) {
            return false;
        }
        
        // Check from 2 to number-1
        for (int i = 2; i <= Math.sqrt(number); i++) {
            if (number % i == 0) {
                return false;
            }
        }
        
        return true;
    }
}
這段程式碼定義了一個名為 isPrime 的方法,該方法決定一個數字是否為質數。在 main 方法中,它遍歷從 2 到 499 的所有數字,對每個數字調用 isPrime 方法。如果 isPrime 方法返回 true,它將打印該數字是質數,並增加質數的計數。最後,它打印出找到的質數總數。
注意,在 isPrime 方法中,我們只需要檢查到 sqrt(number),因為如果 number 不是質數,它會有一個因子在 sqrt(number) 以下。這是一個常用的優化,可以使程式更有效率。
詳解 提供者:jack850628

public static void main(String[] args) {

    ArrayList a = new ArrayList<>();

    for(int i = 2; i <= 500; i++)

        a.add(i);

    int i = 0, j = 0;

    while(i < a.size()){

        j = i + 1;

        while(j < a.size()){

            if(a.get(j) % a.get(i) == 0)

                a.remove(j);

            else

                j++;

        }

        i++;

    }

    for(int v : a)

        System.out.println(v + " is prime.");

    System.out.println(a.size() + " primes found.");

}


詳解 提供者:皮卡112年高普考雙榜感謝阿摩

public static void main(String []args){
      int sum=0;
      for(int i=2;i<=500;i++){
        int count=0;
          for(int j=1;j<=i;j++){
              if(i%j==0){
                  count++; //加總i 的因數個數
              }
          }if(count<=2){ //質數的因數只有自己和1
              System.out.println(i+" is prime");
              sum++; //加總所有質數的個數
          }
      }System.out.println(sum+" primes found");
     }