На самом деле, здесь было много отдельных ошибок. Я сократил функцию prime()
до такой степени, что это была только операция по модулю, поэтому я смог ее встроить. Во-вторых, я инвертировал тест, чтобы он проверял числа, у которых нет , есть остаток, и переходит к следующему числу, как только он находит делитель. В-третьих, я изменил b = 1
, чтобы мы не проверяли числа, делимые на 1, потому что это привело бы ко всем числам. Наконец, я только распечатываю числа, для которых мы не открываем делитель. Окончательный результат:
public static void main(String[] args) {
outer:
for (int a = 2; a <= 1000; a++) {
for (int b = 2; b < a; b++) {
if (a % b == 0) {
continue outer;
}
}
System.out.println(a);
}
}
Редактировать: Я забыл упомянуть, я также изменил типы с плавающих на целые, поскольку я уверен, что это то, что вы имели в виду.