Сумма двух простых чисел в 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 представимо в виде суммы двух простых.