Сумма n простых чисел java, запутанная
Я прочитал несколько постов по этому поводу, я даже делал это во время одного из моих экзаменов, но был на vb.net. Это работало нормально, однако Eclipse просто безостановочно работает, когда я пытаюсь выполнить свою программу, или иначе это дает мне неправильный ответ. Вот моя четвертая попытка. Мне нужно добавить сумму первых n простых чисел, поэтому я проверяю, является ли число простым или нет. Цикл не останавливается по какой-то причине. Любая помощь будет оценена. Благодарю.
int count = 0;
int noMod0s = 0;
int total = 0;
//static boolean prime;
for (int y = 2;count<5;y++) {
for (int z = 1;z<y;z++) {
if (y % z == 0) {
noMod0s++;
}
}
if (noMod0s == 1) {
total = total + y;
count++;
noMod0s = 0;
}
}
System.out.println(total);
1 ответ
Решение
Есть как минимум две проблемы с вашим кодом:
- Вы не сбрасываете переменную
noMod0s
для каждого отдельного теста на простоту Вы должны сделать это до второго цикла. - Второй цикл должен начинаться с 2, а не с 1, чтобы быть действительным тестом первичности. Конечно, в этом случае вы будете сравнивать
noMod0s == 0
, Он работает так же, но дает более четкое представление о том, что делает код.