Наибольший общий делитель.
Условие:
Напишите программу, реализующую алгоритм Евклида для определения наибольшего общего делителя двух положительных чисел, введенных пользователем.
Проверьте программу на работоспособность с очень большими числами.
Результат должен высчитываться очень быстро даже для огромных входных значений, состоящих из сотен чисел. Причина заключается в очень высокой эффективности данного алгоритма.
Этот алгоритм описывается так:
Если b = 0, тогда возвращаем a - базовый случай
Иначе передаём в рекурсию (b, a % b).
Код:
def my_def(a, b):
if b == 0:
return a
else:
return my_def(b, a % b)
a = int(input("%100s" % "Введите целое число (a): "))
b = int(input("%100s" % "Введите целое число (b): "))
result = my_def(a, b)
print("%99s" % result)