【Java言語】指定された範囲の素数を列挙するプログラムとその仕組み
素数の定義
素数とは、1と自分自身以外の約数を持たない自然数のことです。たとえば、2, 3, 5, 7, 11, 13 などが素数です。1は素数ではありません。素数を列挙するには、与えられた範囲の中で素数を順番に見つけていく必要があります。
素数を列挙する方法
素数を列挙する方法としては、以下のようなものがあります。
- 試し割り法: 範囲内の各数について、1とその数自身以外で割り切れる数がないかを確認する方法。
- エラトステネスの篩: 2から始めて順に素数を見つけ、素数の倍数を範囲から除外していく方法。
ここでは、最もシンプルな試し割り法を使った方法を解説します。
素数を列挙するプログラムの解説
指定された範囲内の素数を列挙するには、次の手順に従ってプログラムを作成します。
- 範囲内の全ての数について、素数かどうかを判定します。
- 各数について、2からその数の平方根までの数で割り切れるかをチェックします。
- 割り切れる数がなければ、その数は素数です。
ここでは、簡単な試し割り法を用いて素数を判定します。試し割り法では、ある数が素数かどうかを判定する際に、その数の平方根までの範囲で割り切れるかを確認します。これにより計算量を削減できます。
コード例
以下に、指定された範囲内の素数を列挙するJavaプログラムの例を示します。
public class PrimeNumberLister { public static void main(String[] args) { int start = 10; // 範囲の開始 int end = 50; // 範囲の終了 System.out.println("指定範囲の素数:"); for (int num = start; num <= end; num++) { if (isPrime(num)) { System.out.println(num); } } } // 素数判定メソッド public static boolean isPrime(int num) { if (num <= 1) { return false; // 1以下は素数ではない } for (int i = 2; i <= Math.sqrt(num); i++) { if (num % i == 0) { return false; // 割り切れる数があれば素数ではない } } return true; // 割り切れなければ素数 } }
このプログラムは、指定された範囲(この例では10から50)の中で素数を探し、素数であればその数を表示します。
まとめ
Javaを使って指定された範囲内の素数を列挙するプログラムを作成するには、まず素数の定義を理解し、素数を判定する方法を選択することが重要です。試し割り法はシンプルであり、範囲内の素数を手軽に列挙するのに適しています。
上記のコードでは、指定した範囲内の数について素数かどうかを判定し、素数を表示しています。この方法を使えば、他の範囲や入力に対しても簡単に素数を列挙することができます。