Вот программа на Java, которая проверяет, является ли заданное число простым, используя цикл while для перебора делителей, начиная с 2. Простым называется число, которое больше 1 и имеет только два делителя: 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 number) {
if (number <= 1) {
return false; // Числа <= 1 не являются простыми
}
int divisor = 2;
while (divisor * divisor <= number) { // Проверяем делителей до корня из number
if (number % divisor == 0) {
return false; // Если число делится на divisor, оно не простое
}
divisor++;
}
return true; // Если не нашли делителей, число простое
}
}
Объяснение кода:
- Программа запрашивает у пользователя ввод числа.
- Метод
isPrimeотвечает за проверку, является ли число простым. - Если число меньше или равно 1, функция возвращает
false, так как такие числа не являются простыми. - Цикл
whileперебирает делители, начиная с 2, и продолжается до тех пор, пока квадрат делителя не превысит значение числа. Это оптимизация, так как если число не делится на делитель меньше его квадратного корня, то оно не будет делиться и на большие делители. - Если оказывается, что число делится на текущий делитель без остатка, то возвращается
false. - Если конец цикла достигнут без нахождения делителей, возвращается
true, что означает, что число простое.
Надеюсь, это поможет вам в понимании решения задачи! Если у вас есть дополнительные вопросы или нужно объяснить другие аспекты, не стесняйтесь спрашивать!
