25. Проверить число на простоту
Условие задачи:
Написать консольное приложение на Java, которое считывает целое число и определяет, является ли оно простым.
import java.util.Scanner;
public class PrimeChecker {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int number = scanner.nextInt();
if (isPrime(number)) {
System.out.println(number + " — простое число.");
} else {
System.out.println(number + " — не является простым.");
}
scanner.close();
}
public static boolean isPrime(int n) {
// ваш код
}
}
📌 Пример 1:
Вход:2
Выход:2 — простое число.
📌 Пример 2:
Вход:4
Выход:4 — не является простым.
📌 Пример 3:
Вход:17
Выход:17 — простое число.
Спойлеры к решению
Подсказки
💡 Число больше 1 — только такие могут быть простыми.
💡 Проверяйте делимость на 2 отдельно, затем только нечётные делители до √n.
💡 Если делитель найден — число составное, можно сразу вернуть
💡 Не забывайте обрабатывать
💡 Проверяйте делимость на 2 отдельно, затем только нечётные делители до √n.
💡 Если делитель найден — число составное, можно сразу вернуть
false.💡 Не забывайте обрабатывать
n <= 1 как не простые.Решение
import java.util.Scanner;
public class PrimeChecker {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Введите число: ");
int number = scanner.nextInt();
if (isPrime(number)) {
System.out.println(number + " — простое число.");
} else {
System.out.println(number + " — не является простым.");
}
scanner.close();
}
public static boolean isPrime(int n) {
if (n <= 1) {
return false; // 0 и отрицательные не простые
}
if (n == 2) {
return true; // 2 — единственное чётное простое
}
if (n % 2 == 0) {
return false; // все другие чётные составные
}
int limit = (int) Math.sqrt(n);
for (int i = 3; i <= limit; i += 2) {
if (n % i == 0) {
return false;
}
}
return true;
}
}
📌 Что важно помнить:
✅ Обработка крайних случаев (n <= 1, n == 2).
✅ Оптимизация: проверка только нечётных делителей до корня.
✅ Немедленный выход при первом найденном делителе.