У меня есть код, который вычисляет наименьшее общее кратное для списка чисел. Я хотел бы изменить этот код, чтобы он возвращал список значений, представляющих наименьшее общее кратное число для каждой пары в моем списке номеров.
def lcm(numbers):
return reduce(__lcm, numbers)
def __lcm(a, b):
return ( a * b ) / __gcd(a, b)
def __gcd(a, b):
a = int(a)
b = int(b)
while b:
a,b = b,a%b
return a
Если ввод [3, 5, 10]
, вывод будет [lcm(5,10)=10, lcm(3,5)=15, lcm(3,10)=30]
(сортировка не требуется).
Мне кажется, что есть какой-то элегантный способ вычисления этого списка наименьших общих кратных, но я не могу понять его без какого-либо примера.