@Janna1603

Как написать задачу «Минимальный делитель»?

Дано целое число, не меньшее 2. Выведите его наименьший натуральный делитель, отличный от 1
Когда вводишь сначала число меньше 2, а потом больше двух выдает ошибку
А когда сразу вводишь число больше двух, все в порядке
b = 1
while True:
a = int(input())
b = b + 1
if a % b == 0:
print(b)
break
else:
if a < 2:
print("Ошибка!")
continue
  • Вопрос задан
  • 2646 просмотров
Пригласить эксперта
Ответы на вопрос 3
Zoominger
@Zoominger Куратор тега Python
System Integrator
else:
if a < 2:
print("Ошибка!")
continue

Вот тут.
Нужно проверять величину числа до деления. Если меньше, то break.
Ответ написан
@Drill
def small_div(num):
    if num < 2:
        return f'Число не соответствует условию задачи: {num} < 2'
    for i in range(2, num+1):
        if not num%i:
            return i
Ответ написан
Комментировать
@OdAs
Начинающий пайтон програмист
Есть специальный алгоритм Евклида для наибольшого делителя:
a = int(input())
b = int(input())

while a != 0 and b != 0:
if a > b:
a %= b
else :
b %= a
gcd = a+b
print(gcd)
тебе его только немного переделать
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы