Javaで指定された範囲内の素数を見つける方法


  1. 方法1: ネストされたループを使用する方法

    public class PrimeNumberFinder {
    public static void main(String[] args) {
        int start = 1;  // 範囲の開始値
        int end = 100;  // 範囲の終了値
    
        for (int i = start; i <= end; i++) {
            boolean isPrime = true;
    
            for (int j = 2; j < i; j++) {
                if (i % j == 0) {
                    isPrime = false;
                    break;
                }
            }
    
            if (isPrime) {
                System.out.println(i + "は素数です。");
            }
        }
    }
    }

    この方法では、指定された範囲内の各数値に対して、2からその数値の直前までの数値で割り切れるかどうかをチェックします。割り切れる場合は素数ではないため、フラグ変数isPrimefalseに設定し、内部のループを終了します。最終的にisPrimetrueのままであれば、その数値は素数です。

  2. 方法2: メソッドを使用する方法

    public class PrimeNumberFinder {
    public static void main(String[] args) {
        int start = 1;  // 範囲の開始値
        int end = 100;  // 範囲の終了値
    
        for (int i = start; i <= end; i++) {
            if (isPrime(i)) {
                System.out.println(i + "は素数です。");
            }
        }
    }
    
    private static boolean isPrime(int number) {
        if (number < 2) {
            return false;
        }
    
        for (int i = 2; i < number; i++) {
            if (number % i == 0) {
                return false;
            }
        }
    
        return true;
    }
    }

    この方法では、isPrimeという名前のメソッドを定義し、各数値が素数かどうかを判定します。メソッド内部では、範囲内の各数値に対して同様の処理が行われますが、メソッドを使用することでコードの再利用性が向上します。

これらの方法は、指定された範囲内の素数を見つけるための基本的なアプローチです。他にも高速な素数判定アルゴリズムやライブラリを使用する方法もありますが、ここでは基本的な手法を紹介しました。必要に応じて、より高度なアルゴリズムを調査して実装してみてください。