12068. Кількість віднімань
Відправити розв'язок
Бали:
100
Time limit:
2.0s
Memory limit:
500M
Authors:
Problem type
Allowed languages
C++, Java, Pascal, Python
Вам задано натуральні числа \(A\) і \(B\).
Ви повторюватимете таку операцію, доки \(A\) не стане \(B\):
- порівняйте \(A\) і \(B\), щоб виконати одну з наступних двох дій:
- якщо \(A>B\), замініть \(A\) на \(A−B\);
- якщо \(A<B\), замінити \(B\) на \(B−A\).
Скільки разів ви будете повторювати, поки не настане \(A=B\)? Гарантується, що кінцеве повторення робить \(A=B\).
Обмеження
- \(1≤A,B≤10^{18}\)
- Усі значення у вхідних даних є цілими числами.
Формат вхідних даних
Вхідний потік містить цілі числа \(A,B\).
Формат вихідних даних
У вихідний потік виведіть відповідь.
Приклад вхідних даних
3 8
Приклад вихідних даних
4
Спочатку A=3 і B=8. Ви повторюєте операцію наступним чином:
- A<B, тому замініть B на B−A=5, роблячи A=3 і B=5.
- A<B, тому замініть B на B−A=2, роблячи A=3 і B=2.
- A>B, тому замініть A на A−B=1, роблячи A=1 і B=2.
- A<B, тому замініть B на B−A=1, роблячи A=1 і B=1.
Таким чином, ви повторюєте це чотири рази.
Приклад вхідних даних
1234567890 1234567890
Приклад вихідних даних
0
Приклад вхідних даних
1597 987
Приклад вихідних даних
15
Коментарі