Минимальный простой делитель
Дано целое число, не меньшее 2. Выведите его наименьший простой делитель.
Входные данные
Вводится целое положительное число N≤2∗109.
Выходные данные
Выведите ответ на задачу.
Примеры
Ввод
Вывод
15
3
179
179
python
ДАЮ 100
Answers & Comments
Verified answer
Программа:
Python:
num = int(input())
tmp1 = 2
tmp2 = int(num**(0.5))
while num % tmp1 != 0 and tmp1 < tmp2:
tmp1 += 1
print(tmp1 if num % tmp1 == 0 else num)
Объяснение:
Сначала нужно понять и осмыслить определение и наименьшего простого делителя числа. По теореме, наименьший просто делитель составного числа a не превосходит √a. Простой делитель - это простое число, на которое и делится число a. Простое число - натуральное число, делающиеся на себя и на единицу без остатка.
В начале вводится само число, которое записывается в переменную num. Значению переменной tmp1 присваивается 2 для будущих вычислений, значению переменной tmp2 присваивается корень от числа num (и округляется строго назад). С помощью цикла while проверяется следующее действие: пока число num делится на tmp1 с остатком, и tmp1 меньше корня от числа num, к значению переменной tmp1 прибавляется единица. В конце - выводится значение переменной tmp1, если num делится на tmp1 без остатка, иначе выводится само число (если вывелось само число, то значит, что число не имеет простых делителей).
Результат:
15
3
179
179
345
3
1345
5