Вычисление наименьшего общего кратного

PythonPythonBeginner
Практиковаться сейчас

This tutorial is from open-source community. Access the source code

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В математике наименьшее общее кратное (НОК) — это наименьшее положительное целое число, которое делится на два или более чисел без остатка. Например, НОК чисел 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) для вычисления НОК двух чисел.