Проще пареной репы: вот код, а котором используется решето Эратосфена для определения простых чисел, а затем проверяется гипотеза Гольдбаха для первых 500 четных чисел. Если число может быть представлено в виде суммы двух простых чисел, то программа выводит соответствующую пару на экран.
/*
* Проверка гипотезы Гольдбаха для первых 500 чисел.
* Любое четное число больше 2 может быть представлено в виде суммы двух простых чисел.
*/
public class GoldbachConjecture {
public static void main(String[] args) {
// Объявляем переменные
int max = 500; // Количество чисел, которые нужно проверить
boolean[] sieve = new boolean[max]; // Решето Эратосфена для определения простых чисел
// Заполняем решето, считая все числа простыми
for (int i = 2; i < max; i++) {
sieve[i] = true;
}
// Отмечаем составные числа в решете
for (int i = 2; i < Math.sqrt(max); i++) {
if (sieve[i]) {
for (int j = i * i; j < max; j += i) {
sieve[j] = false;
}
}
}
// Проверяем гипотезу Гольдбаха для первых 500 чисел
for (int n = 4; n < max; n += 2) {
for (int i = 2; i <= n / 2; i++) {
if (sieve[i] && sieve[n - i]) {
System.out.println(n + " = " + i + " + " + (n - i));
break;
}
}
}
}
}