Сумма 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, Он работает так же, но дает более четкое представление о том, что делает код.
Другие вопросы по тегам