Наибольший общий делитель.

(открыть в новой вкладке)

Условие:

Напишите программу, реализующую алгоритм Евклида для определения наибольшего общего делителя двух положительных чисел, введенных пользователем. Проверьте программу на работоспособность с очень большими числами. Результат должен высчитываться очень быстро даже для огромных входных значений, состоящих из сотен чисел. Причина заключается в очень высокой эффективности данного алгоритма.
Этот алгоритм описывается так:
Если 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)