Введение
В математике наименьшее общее кратное (НОК) — это наименьшее положительное целое число, которое делится на два или более чисел без остатка. Например, НОК чисел 4 и 6 равно 12, так как 12 — это наименьшее число, которое делится на 4 и на 6.
Наименьшее общее кратное
Напишите функцию lcm(numbers), которая принимает список чисел в качестве аргумента и возвращает их наименьшее общее кратное. Ваша функция должна использовать следующую формулу для вычисления НОК двух чисел x и y: НОК(x, y) = x * y / НОД(x, y), где НОД(x, y) — это наибольший общий делитель x и y.
Для решения этой задачи вы можете использовать функцию functools.reduce(), чтобы применить формулу НОК() ко всем числам в списке. Также вы можете использовать функцию math.gcd() для вычисления наибольшего общего делителя двух чисел.
from functools import reduce
from math import gcd
def lcm(numbers):
return reduce((lambda x, y: int(x * y / gcd(x, y))), numbers)
lcm([12, 7]) ## 84
lcm([1, 3, 4, 5]) ## 60
Резюме
В этом испытании вы узнали, как вычислять наименьшее общее кратное списка чисел с использованием функций functools.reduce() и math.gcd(). Функция НОК() использует формулу НОК(x, y) = x * y / НОД(x, y) для вычисления НОК двух чисел.