Давайте разберемся с задачей: нужно найти наименьший делитель данного целого числа (не меньше 2), отличный от 1.
Что нужно сделать?
Для числа n ищем минимальное число d, такое что:
- d делит n без остатка (оставляет остаток 0),
- d не равно 1,
- d минимально среди всех делителей n, отличных от 1.
Пошаговое решение:
Понимание задачи:
Так как n — целое число и не меньше 2, то минимальный делитель, отличный от 1, — это либо 2, если число четное, либо наименьшее число, которое делит n.Алгоритм поиска:
- Проверить делимость числа n с помощью числа 2.
- Если n делится на 2, то наименьший делитель равен 2.
- Если нет, проверить числа от 3 до sqrt(n) (квадратный корень из n).
- Как только найдется делитель, вывести его.
- Если делитель не найден, значит число — простое и наименьший делитель (кроме 1) — само число n.
Код решения на Python:
import math
n = int(input("Введите число (не меньше 2): "))
# Проверка делимости на 2
if n % 2 == 0:
print(2)
else:
# Проверка делимости на нечетные числа от 3 до sqrt(n)
for i in range(3, int(math.sqrt(n)) + 1, 2):
if n % i == 0:
print(i)
break
else:
# Если делитель не найден, то число простое
print(n)
Объяснение кода:
- Считываем число n.
- Если оно делится на 2, выводим 2.
- Иначе пробегаем числа от 3 до √n с шагом 2 (чтобы проверить только нечетные делители).
- Если нашли делитель, выводим его и завершает цикл (
break). - Если за цикл ничего не найдено, значит число простое, и наименьший делитель (кроме 1) — это само число n.
Если есть дополнительные вопросы или нужно решить другое задание — обращайся!