ゴールドバッハの予想のJavaプログラム

ゴールドバッハの予想とは、すべての偶数は2つの素数の和として表せるという予想です。

つまり、2を除くすべての偶数nについて、素数pとqが存在し、n=p+qとなるということです。

例えば、4=2+2, 6=3+3, 8=3+5, 10=3+7=5+5, 12=5+7, 14=3+11=7+7などが当てはまります。

この予想は1742年にドイツの数学者クリスティアン・ゴールドバッハによって提唱され、未だに解決されていません。

現代の数学では、ゴールドバッハの予想は未解決問題の1つとして扱われています。

import java.util.*;

public class GoldbachConjecture {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter the even number to find its two prime summands:");
        int n = sc.nextInt();
        if (n % 2 != 0 || n <= 2) {
            System.out.println("Invalid input!");
            return;
        }
        findPrimeSummands(n);
    }

    public static void findPrimeSummands(int n) {
        for (int i = 2; i <= n / 2; i++) {
            if (isPrime(i)) {
                int j = n - i;
                if (isPrime(j)) {
                    System.out.println(n + " = " + i + " + " + j);
                }
            }
        }
    }

    public static boolean isPrime(int n) {
        if (n == 2) {
            return true;
        }
        if (n < 2 || n % 2 == 0) {
            return false;
        }
        for (int i = 3; i <= Math.sqrt(n); i += 2) {
            if (n % i == 0) {
                return false;
            }
        }
        return true;
    }
}

このプログラムでは、ユーザーに偶数を入力するように求めます。

入力が偶数であることと、2より大きいことを確認します。

偶数の各値について、2つの素数がその和として見つかるかどうかを確認します。

2つの素数が見つかった場合、その値を表示します。

このプログラムですべての偶数について2つの素数を見つけることができます。

ゴールドバッハの予想のJavaプログラム 最後までお読みいただきありがとうございます。

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。