使用Java解決 - 判斷101-200之間有多少個素數,並輸出所有素數

在編程中,處理數學問題是一個常見的任務。本文將介紹如何使用Java語言來判斷101到200之間的整數中有多少個是素數,並輸出這些素數。素數是指在大於1的自然數中,除了1和它本身以外不再有其他因數的數。

什麼是素數?

素數(Prime number)是隻有兩個正因子(1和自己)的自然數,且必須大於1。例如,5是一個素數,因為它只能被1和5整除;而4不是素數,因為它可以被1、2和4整除。

Java代碼實現

下面是一個簡單的Java程序,用於找出並打印101到200之間的所有素數:

public class PrimeNumbers {
    public static void main(String[] args) {
        int count = 0; // 計數器,用於統計素數的數量
        for (int i = 101; i <= 200; i++) {
            if (isPrime(i)) {
                System.out.println(i);
                count++;
            }
        }
        System.out.println("101到200之間共有 " + count + " 個素數。");
    }

    // 判斷一個數是否為素數的方法
    private static boolean isPrime(int num) {
        if (num <= 1) {
            return false;
        }
        for (int i = 2; i <= Math.sqrt(num); i++) {
            if (num % i == 0) {
                return false;
            }
        }
        return true;
    }
}

代碼解析

  1. 主方法 (main 方法):
  • 定義了一個計數器 count 來記錄找到的素數數量。
  • 使用 for 循環遍歷101到200之間的每一個數字。
  • 對每個數字調用 isPrime 方法檢查是否為素數。
  • 如果是素數,則打印該數字並將計數器加一。
  • 最後,輸出總共找到了多少個素數。
  1. 判斷素數的方法 (isPrime 方法):
  • 首先檢查數字是否小於或等於1,如果是,則返回 false,因為1及以下的數不是素數。
  • 使用一個 for 循環從2開始到該數字的平方根進行迭代。選擇平方根作為上限是因為如果一個數不是素數,那麼它必定有一個小於或等於其平方根的因數。
  • 在循環中,如果發現任何能整除該數字的數,則返回 false
  • 如果循環結束後沒有發現能整除的數,則返回 true,表示該數字是素數。

運行結果

當你運行上述Java程序時,它會輸出101到200之間的所有素數以及這些素數的總數。

下面是一個用Java編寫的示例程序,用於判斷101到200之間的素數,並輸出這些素數及其總數。

public class PrimeNumbers {
    public static void main(String[] args) {
        int start = 101;
        int end = 200;
        int count = 0;

        System.out.println("Prime numbers between " + start + " and " + end + " are:");

        for (int i = start; i <= end; i++) {
            if (isPrime(i)) {
                System.out.println(i);
                count++;
            }
        }

        System.out.println("Total prime numbers between " + start + " and " + end + ": " + count);
    }

    // 判斷一個數是否為素數
    public static boolean isPrime(int num) {
        if (num <= 1) {
            return false;
        }
        for (int i = 2; i <= Math.sqrt(num); i++) {
            if (num % i == 0) {
                return false;
            }
        }
        return true;
    }
}

代碼解釋

  1. 主類和主方法
  • PrimeNumbers 是主類。
  • main 方法是程序的入口點。
  1. 變量定義
  • startend 分別定義了要檢查的範圍(101到200)。
  • count 用於記錄找到的素數數量。
  1. 循環遍歷範圍內的每個數
  • 使用 for 循環從 startend 遍歷每個數。
  • 對於每個數,調用 isPrime 方法判斷其是否為素數。
  1. 判斷素數的方法
  • isPrime 方法接受一個整數 num 作為參數。
  • 如果 num 小於或等於1,則返回 false(因為1及以下的數不是素數)。
  • 使用 for 循環從2到 sqrt(num) 檢查是否有任何數能整除 num。如果有,則 num 不是素數,返回 false
  • 如果沒有找到能整除 num 的數,則 num 是素數,返回 true
  1. 輸出結果
  • 如果一個數是素數,輸出該數並增加 count
  • 最後輸出總共有多少個素數。

【詳解】使用java解決-判斷101-200之間有多少個素數,並輸出所有素數。_System

運行這個程序,你將看到101到200之間的所有素數及其總數。希望這對你有幫助!如果有任何問題,請隨時提問。當然可以!下面是一個使用Java編寫的程序,用於判斷101到200之間有多少個素數,並輸出所有的素數。

Java 代碼

public class PrimeNumbers {
    public static void main(String[] args) {
        int start = 101;
        int end = 200;
        int count = 0;

        System.out.println("Prime numbers between " + start + " and " + end + " are:");

        for (int i = start; i <= end; i++) {
            if (isPrime(i)) {
                System.out.println(i);
                count++;
            }
        }

        System.out.println("Total prime numbers between " + start + " and " + end + ": " + count);
    }

    // 判斷一個數是否為素數
    public static boolean isPrime(int num) {
        if (num <= 1) {
            return false;
        }
        if (num == 2) {
            return true;
        }
        if (num % 2 == 0) {
            return false;
        }
        for (int i = 3; i <= Math.sqrt(num); i += 2) {
            if (num % i == 0) {
                return false;
            }
        }
        return true;
    }
}

代碼解釋

  1. 主類和主方法
  • PrimeNumbers 是主類。
  • main 方法是程序的入口點。
  1. 變量定義
  • startend 分別定義了要檢查的範圍(101到200)。
  • count 用於記錄素數的數量。
  1. 循環遍歷範圍內的每個數
  • 使用 for 循環從 startend 遍歷每個數。
  • 對於每個數 i,調用 isPrime 方法判斷其是否為素數。
  1. 輸出素數
  • 如果 i 是素數,輸出該數並增加 count
  1. 輸出總素數數量
  • 循環結束後,輸出總的素數數量。
  1. 判斷素數的方法 isPrime
  • 如果 num 小於等於1,返回 false(1不是素數)。
  • 如果 num 等於2,返回 true(2是最小的素數)。
  • 如果 num 是偶數且不等於2,返回 false(偶數除了2都不是素數)。
  • 使用 for 循環從3開始,每次增加2(只檢查奇數),直到 Math.sqrt(num),如果 num 能被任何一個小於等於其平方根的數整除,則返回 false
  • 如果以上條件都不滿足,返回 true,表示 num 是素數。

運行結果

運行上述程序,你將看到101到200之間的所有素數及其總數。例如:

Prime numbers between 101 and 200 are:
101
103
107
109
113
127
131
137
139
149
151
157
163
167
173
179
181
191
193
197
199
Total prime numbers between 101 and 200: 21

希望這個示例對你有幫助!如果有任何問題或需要進一步的解釋,請隨時告訴我。