Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Напишите программу проверки гипотезы Гольбдаха для первых 500 чисел на JAVA.

*** Ученик (213), на голосовании 1 год назад
Согласно гипотезе Гольдбаха, любое четное число может быть
представлено в виде суммы двух простых чисел.
Напишите программу проверки этой гипотезы для первых 500 чисел. Каждое число и сумма двух его простых числе должны выводиться на экран. В конце необходим вывод о том, верна ли теория.
Один метод main, без импорта доп. пакетов кроме Math
Голосование за лучший ответ
Оракул Оракул (62095) 1 год назад
 public class Question_232001615 { 

public static void main(String[] args) {
int[] primes = new int[]{
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101,
103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199,
211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317,
331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443,
449, 457, 461, 463, 467, 479, 487, 491, 499
};
int count = 249;
boolean found;
for (int n = 4; n <= 500; n += 2) {
found = false;
for (int i : primes) {
for (int j : primes) {
if (i + j == n) {
System.out.println(n + " = " + i + " + " + j);
count--;
found = true;
break;
}
if (i + j > n) {
break;
}
}
if (found) {
break;
}
}
}
System.out.println(count == 0 ? "Теория верна" : "Теория неверна");
}
}
***Ученик (213) 1 год назад
Спасибо большое! А можно ли получить небольшие комментарии, какие строки за что отвечают?
Оракул Оракул (62095) ***, primes - массив простых чисел до 500, сразу вбиты, без вычислений count = 249 - сколько должно быть в результате сумм, уменьшается при нахождении, можно наоборот сумму с 0 сделать, без разницы первый цикл по четным числам от 4 до 500 - по сути задачи второй и третий цикл по списку простых чисел, чтобы найти любую пару, даже совпадающих если сумма равна четному числу - печатается число сумма, отмечается признак найден, чтобы не находить все пары простых чисел, их может быть больше одной если сумма больше искомого числа, дальше бегать по циклу смысла нет, завершаем внешний цикл завершаем, если пара для текущего числа найдена в конце если счетчик уменьшился до 0, значит пара нашлась для всех чисел
АлександрИскусственный Интеллект (301732) 1 год назад
в программировании, про строки типа
int count = 249;
говорят -- "магическое число"...
Оракул Оракул (62095) Александр, знаю, но для задач мне пофиг.
Александр Искусственный Интеллект (301732) 1 год назад
почему сам не пишешь? тебе навязали джаву учить?
Похожие вопросы