Вообще-то в Python уже есть встроенная реализация:
import math
print(math.gcd(*map(int, input().split())))
Но если надо вручную, то:
def gcd(a, b): return gcd(b, a % b) if b else a
print(gcd(*map(int, input().split())))
И, да - это именно алгоритм Евклида: нормальная реализация через нормальный остаток от деления, а не через кучу бессмысленную вычитаний ради получения этого остатка.
С кол-вом гипотетических итераций:
def gcd(a, b, c = 0): return gcd(b, a % b, c + a // b) if b else [a, c]
print(*gcd(*map(int, input().split())))
Входные данные
Входная строка содержит два числа, разделённые пробелом – a и b .
Выходные данные
Программа должна вывести в одной строке два числа: сначала наибольший общий делитель двух введённых чисел, а затем – количество шагов цикла, которые были выполнены.
Примеры
входные данные
14 21
выходные данные
7 3
_______________________
входные данные
171 3534
выходные данные
57 23