JavaでN番目の素数を見つける方法


まず、素数とは1と自分自身以外の約数を持たない数のことを指します。具体的なアルゴリズムを使って、N番目の素数を見つける方法を説明します。

  1. 素数をカウントする変数countを0で初期化します。
  2. 変数numを2で初期化します。numは素数候補として始める最初の数です。
  3. 無限ループを開始します。
    • 変数isPrimeをtrueで初期化します。isPrimeはnumが素数かどうかを示すフラグです。
    • 変数iを2からnum-1までインクリメントしながら以下の処理を行います。
      • もしnumがiで割り切れる場合、isPrimeをfalseに設定し、ループを抜けます。
    • もしisPrimeがtrueのままであれば、素数が見つかったことになります。countをインクリメントします。
      • もしcountがNと等しくなった場合、numがN番目の素数であることが確定したので、ループを抜けます。
    • numをインクリメントします。
  4. ループを抜けた後、numがN番目の素数となっています。

以下に、上記のアルゴリズムを実装したJavaのコード例を示します。

public class NthPrimeNumber {
    public static void main(String[] args) {
        int N = 1000; // N番目の素数を求めたい場合、Nの値を設定します。
        int count = 0;
        int num = 2;
        while (true) {
            boolean isPrime = true;
            for (int i = 2; i < num; i++) {
                if (num % i == 0) {
                    isPrime = false;
                    break;
                }
            }
            if (isPrime) {
                count++;
            }
            if (count == N) {
                break;
            }
            num++;
        }
        System.out.println(N + "番目の素数は " + num + " です。");
    }
}

上記のコードを実行すると、N番目の素数が求められ、その結果が表示されます。