Все задачи
Легко Решено: 0 Процент решений: 0%

Наибольший общий делитель

Найдите наибольшее число, на которое делятся оба значения.

Верните наибольший общий делитель чисел a и b. Алгоритм Евклида многократно заменяет (a, b) на (b, a mod b), пока b не станет равным 0.

Реализуйте функцию gcd(a, b).

Ввод

a: Первое число. b: Второе число.

Вывод

Верните gcd(a, b). Значение gcd(0, 0) считается равным 0.

Ограничения

0 ≤ a, b ≤ 10¹⁸

Примеры

Пример 1
Ввод:
a = 48
b = 18

Ожидаемый вывод:
expected = 6
Ввод:
long long a = 48;
long long b = 18;

Ожидаемый вывод:
long long expected = 6;
Ввод:
long a = 48;
long b = 18;

Ожидаемый вывод:
long expected = 6;

Пояснение

48 mod 18 = 12, 18 mod 12 = 6, 12 mod 6 = 0, поэтому ответ — 6.

Пример 2
Ввод:
a = 17
b = 5

Ожидаемый вывод:
expected = 1
Ввод:
long long a = 17;
long long b = 5;

Ожидаемый вывод:
long long expected = 1;
Ввод:
long a = 17;
long b = 5;

Ожидаемый вывод:
long expected = 1;

Пояснение

17 и 5 не имеют общих делителей, кроме 1.

Ссылки

Это задание адаптировано для CodeUtility. Следуйте условию и ограничениям выше.

Учитесь у других

Решения сообщества

Пока нет опубликованных решений. Решите задание, чтобы поделиться первым.