🔎 Как вычислить наименьшее общее кратное (НОК) в Python? 🐍
Как вычислить наименьшее общее кратное (НОК) в Python?
НОК двух или более чисел можно вычислить с помощью библиотечной функции gcd
из модуля math
. Вот пример:
from math import gcd
def lcm(a, b):
return abs(a * b) // gcd(a, b)
num1 = 12
num2 = 18
result = lcm(num1, num2)
print(f"НОК чисел {num1} и {num2} равен {result}.")
В этом примере мы определяем функцию lcm
, которая принимает два числа и использует функцию gcd
для вычисления НОД (наибольший общий делитель). Затем мы используем формулу НОК = |a * b| / НОД(a, b)
для вычисления НОК. Используя приведенные в примере значения num1 = 12
и num2 = 18
, мы получаем результат НОК чисел 12 и 18 равен 36.
Детальный ответ
Как вычислить НОК (наименьшее общее кратное) в Python
В этой статье мы разберем, как вычислить НОК (наименьшее общее кратное) для двух чисел в языке программирования Python.Математическое определение НОК
НОК двух чисел - это наименьшее положительное число, которое является кратным обоим заданным числам.Метод 1: Использование формулы
Существует элементарная формула для вычисления НОК двух чисел a и b:
def calculate_lcm(a, b):
return abs(a * b) // calculate_gcd(a, b)
def calculate_gcd(a, b):
while b:
a, b = b, a % b
return a
Этот метод использует функцию calculate_gcd(a, b), которая вычисляет НОД (наибольший общий делитель) двух чисел. Затем формула НОК равна (|a * b|) / НОД.
Пример использования:
num1 = 12
num2 = 18
lcm = calculate_lcm(num1, num2)
print(f"НОК чисел {num1} и {num2} равен {lcm}")
Вывод: НОК чисел 12 и 18 равен 36.
Метод 2: Использование библиотеки math
Python также предоставляет библиотеку math, которая содержит функцию gcd(a, b) для вычисления НОД двух чисел. Используя эту функцию, мы можем легко вычислить НОК.
import math
def calculate_lcm(a, b):
return abs(a * b) // math.gcd(a, b)
Этот метод использует функцию math.gcd(a, b) для вычисления НОД и затем применяет ту же формулу НОК, что и в первом методе.
Пример использования:
num1 = 12
num2 = 18
lcm = calculate_lcm(num1, num2)
print(f"НОК чисел {num1} и {num2} равен {lcm}")
Вывод: НОК чисел 12 и 18 равен 36.