Напишите функцию gcd
, которая принимает два натуральных числа и возвращает их наибольший общий делитель.
Примечание
Ваше решение должно содержать только функции.
В решении не должно быть вызовов требуемых функций.
Пример
Ввод
result = gcd(12, 45)
Вывод
result = 3
Ввод
result = gcd(144, 96)
Вывод
result = 48
Решение
Элементарная задача, которую мы решали уже много раз. В этот раз нам нужно завернуть алгоритм поиска НОД в функцию.
Посмотреть код
Решение
Python
def gcd(a, b):
while b != 0:
a, b = b, a % b
return a
def gcd(a, b):
while a != b:
if a > b:
a -= b
else:
b -= a
return a
numbers = list(map(int, input().split()))
fn = numbers[0]
for sn in numbers[1:]:
fn = gcd(fn, sn)
print(fn)