Змагання
Написати програму або функцію, яка приймає два вхідні цілі числа, i
і j
та виводить їх найбільший спільний дільник; розраховується за допомогою алгоритму Евкліда (див. нижче).
Вхідні дані
Введення може сприйматися як розділене пробілом рядкове подання i
та j
або як два окремих числа. Можна припустити, що цілі числа будуть меншими або рівними 10 000. Можна також припустити, що цілі числа введення не будуть простими один одному.
Евклідова розбивка
Чим більше число між ними, i
і j
ділиться на менші, наскільки це можливо. Потім додається залишок. Цей процес повторюється з залишком і попереднім номером, поки не стане залишок 0
.
Наприклад, якщо введення було 1599 650
:
1599 = (650 * 2) + 299
650 = (299 * 2) + 52
299 = (52 * 5) + 39
52 = (39 * 1) + 13
39 = (13 * 3) + 0
Кінцеве число 13
,, є найбільшим спільним дільником двох цілих чисел. Його можна візуалізувати так:
Вихідні дані
Вашим результатом має бути розбивка у наведеній вище формі, а потім новий рядок та GCD. Він може виводитися через будь-який носій.
Приклади
Вхідні дані
18 27
50 20
447 501
9894 2628
Виходи
27 = (18 * 1) + 9
18 = (9 * 2) + 0
9
50 = (20 * 2) + 10
20 = (10 * 2) + 0
10
501 = (447 * 1) + 54
447 = (54 * 8) + 15
54 = (15 * 3) + 9
15 = (9 * 1) + 6
9 = (6 * 1) + 3
6 = (3 * 2) + 0
3
9894 = (2628 * 3) + 2010
2628 = (2010 * 1) + 618
2010 = (618 * 3) + 156
618 = (156 * 3) + 150
156 = (150 * 1) + 6
150 = (6 * 25) + 0
6
Примітка. Виходи не повинні розташовуватись так, як вони були вище. Інтервал призначений лише для наочності. Потрібні дужки.
Бонус
Якщо ваш вихід буде розміщений як вище, ви можете додати бонус -10% до своєї оцінки.