Сумма двух простых чисел в Java — гипотеза Гольдбаха

Программа проверяет, можно ли представить число в виде суммы двух простых чисел, и выводит все возможные варианты такого разложения.

Пример: представление числа как суммы двух простых

public class Main {

  public static void main(String[] args) {
    int number = 34;
    boolean flag = false;
    for (int i = 2; i <= number / 2; ++i) {

      // условие: i — простое
      if (checkPrime(i)) {

        // условие: number - i — простое
        if (checkPrime(number - i)) {

          // n = primeNumber1 + primeNumber2
          System.out.printf("%d = %d + %d\n", number, i, number - i);
          flag = true;
        }

      }
    }

    if (!flag)
      System.out.println(number + " cannot be expressed as the sum of two prime numbers.");
  }

  // функция проверки простоты числа
  static boolean checkPrime(int num) {
    boolean isPrime = true;

    for (int i = 2; i <= num / 2; ++i) {
      if (num % i == 0) {
        isPrime = false;
        break;
      }
    }

    return isPrime;
  }
}

Вывод:

34 = 3 + 31
34 = 5 + 29
34 = 11 + 23
34 = 17 + 17

В примере выше мы создали метод checkPrime() для проверки, является ли число простым. Метод возвращает true, если переданное число — простое.

Здесь у нас число 34. Программа пытается проверить, можно ли представить 34 в виде суммы двух простых чисел.

Совет

Как работает программа:

  • Сначала запускаем цикл for от i = 2 до number / 2.

  • Внутри цикла два if. Первый проверяет, простое ли i.

  • Если да — второй if проверяет, простое ли number - i. Сумма i + (number - i) равна number.

  • Если оба условия истинны, значит число 34 представимо в виде суммы двух простых.