Наименьший простой делитель
Мой код:
n = int(input())
i = 2
while n % i != 0:
i += 1
print(i)
Минимальный простой делитель Дано целое число, не меньшее 2. Выведите его наименьший простой делитель.
Входные данные: целое положительное число N≤2∗109
Выходные данные: выведите ответ на задачу.
Примеры:
15 -> 3
179 -> 179
Пишет: Программа выдаёт ошибку в процессе выполнения
Подсказка: Для сокращения времени работы программы организуйте цикл, перебирающий делители до N−−√. Написать его можно таким образом:
while i * i <= N:
Как решить?
Ответы (1 шт):
Автор решения: OPTIMUS PRIME
→ Ссылка
n = int(input())
i = 2
stop = n ** 0.5 # (0.5 степень) == квадратный корень.
# Посчитано заранее, чтобы на каждой итерации заново не считать i * i
while i < stop and n % i != 0:
i += 1
print(i if n % i == 0 else n)
# Если n всё еще не делится на i, значит не нашлось, число простое.