2. Буратино и НОД нечетных чисел. Моделирование

☰ Теория

Наибольший общий делитель (НОД) чисел A, B принято обозначать (A,B).
Если А, В - нечетные числа, то (А,В) - нечетное число.
Также нетрудно заметить, что:
\((a,1)=(1,a)=1 \\n (2\cdot a,2\cdot b+1)=(a,2\cdot b+1)\)
Эти простые правила позволяют модифицировать процедуру нахождения НОД для нечетных чисел.
Из Большего вычти Меньшее и запиши вместо Большего
Пока одно из чисел чётное , то дели чётное на 2
Если полученные числа равны или одно из чисел равно одному, то прекращай  работу
Меньшее из чисел и есть НОД
Для натуральных нечётных чисел A, B фрагмент кода нахождения НОД может выглядеть так:
# A, B - нечетные натуральные числа  
while ( (A != B) and (A != 1) and (A != 1)):
     if A > B:
         A = A - B
        while ( A % 2 == 0) :
              A = A // 2
     else :
         B = B - A
         while ( B % 2 == 0 ) :
               B = B // 2
if  A < B :
   gcd = A  # gcd  - наибольший общий делитель чисел A, B
else :
    gcd = B 


Замечание: Нетрудно убедиться в том, что данный алгоритм работает и в случае, когда только одно число нечётное
 

Пьеро увидел как Буратино "мучается" с домашним заданием Мальвины по поиску наибольшего общиего делителя двух натуральных чисел с помощью простого Алгоритма Евклида.
Пьеро решил помочь Буратино  и показал ему как можно "ускорить" поиск НОДа, если оба числа нечётные. 
Пьеро спешил на встречу с Мальвиной, поэтому некоторые операции проводил "в уме" (объясняя Буратино свои действия).
Попробуйте понять и воспроизвести алгоритм Пьеро на основе следующих примеров.
Примеры решений Пьеро по поиску НОД для нечётных чисел :
входные данные выходные данные
33
45
33 45
33 3
15 3
3 3
3
45
21
45 21
3 21
3 9
3 3
3
1625
45
1625 45
395 45
175 45
65 45
5 45
5 5
5
1045
21
1045 21
1 21
1

Напишите программу, реализующую данный алгоритм.

Входные данные : Натуральные нечётные числа A, B (числа записаны в две строки, каждое не более 10001). Гарантируется, что А не равно В.
Выходные данные: Полная запись решения (набор строк, в каждой результат очередного действия, смотри примеры). В последней строке указано одно число -  НОД

Напишите программу
Auto
       

time 500 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя