Вот моя программа, внутри for
loop Math.sqrt(n)
- Я думаю, что здесь есть ошибка.Определение того, является ли число 4 простым или нет?
import java.util.Scanner;
public class PrimeNoCheck {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.print("Enter a number : ");
int n = s.nextInt();
if (isPrime(n)) {
System.out.println(n + " is a prime number");
} else {
System.out.println(n + " is not a prime number");
}
}
public static boolean isPrime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i < Math.sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
}
4 не является простым, проблема решена. :) – Thomas
Вы должны просто выполнить жесткую проверку для 'n% 2 == 0' перед вашим циклом. – gonzo
Когда вы задавали свой вопрос, рядом с текстовой областью была большая оранжевая коробка ** «Как форматировать **» с полезной информацией. Была также вся панель инструментов форматирования. И кнопка ** [?] ** дает возможность форматирования. * И * область предварительного просмотра, расположенная между текстовой областью и кнопкой «Опубликовать свой вопрос» (чтобы вам пришлось просканировать ее, чтобы найти кнопку), показывающую, как будет выглядеть ваше сообщение при публикации. Четкость вашего сообщения и демонстрация того, что вы нашли время для этого, улучшают ваши шансы получить хорошие ответы. –