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

Коментарі

Ще немає коментарів.