Answer
t.me/python_tesstОтвет:
a = 14 b = 18 НОК: 126 a = 105 b = 305 НОК: 6405 a = stop
Объяснение:
Последний можно вычислить, постепенно находя остаток от деления большего числа из пары на меньшее и присваивая остаток переменной, связанной с большим числом. В какой-то момент значение одной из переменных станет равным 0. Когда это произойдет, другая будет содержать НОД. Если неизвестно, какая именно переменная содержит НОД, то можно просто сложить значения обоих переменных.
В основной ветке программы функция вызывается в цикле, который завершается, если то, что было введено, нельзя преобразовать к целому. В этом случае генерируется исключение и поток выполнения переходит к ветке except.
Код:
def lcm(a, b):
m = a * b
while a != 0 and b != 0:
if a > b:
a %= b
else:
b %= a
return m // (a + b)
while true:
try:
x = int(input('a = '))
y = int(input('b = '))
print('НОК:', lcm(x, y))
except ValueError:
break