Función Python math.lcm()
En teoría de números,mínimo común múltiplo(Mínimo Común Múltiplo, abreviado como LCM) es un concepto muy importante. Se utiliza para encontrar el menor de los múltiplos comunes de dos o más enteros.
math.lcm()Es una función introducida en Python 3.9, específicamente diseñada para calcular elmínimo común múltiplo (LCM)。
Definición del término: lcmEs la abreviatura de "Least Common Multiple", que significa "mínimo común múltiplo".
Sintaxis básica y parámetros
Formato de sintaxis
import math math.lcm(*integers)
Descripción de parámetros
- Parámetro:
*integers- Un número variable de enteros (al menos uno) - Descripción: Los enteros de los que se calculará el mínimo común múltiplo.
Valor de retorno
- Devuelve el mínimo común múltiplo de todos los enteros de entrada
- Si solo se pasa un entero, devuelve el valor absoluto de ese entero
- Si se pasa 0, devuelve 0
Ejemplos
Ejemplo 1: Uso básico - Calcular el LCM de dos números
Ejemplo
import math
print("LCM de 4 y 6:", math.lcm(4, 6)) # 12
print("LCM de 5 y 7:", math.lcm(5, 7)) # 35
print("LCM de 12 y 18:", math.lcm(12, 18)) # 36
# Verificar la fórmula
a, b = 4, 6
print(f"\n"Verificación: LCM({a}, {b}) = {a} * {b} / GCD({a}, {b}) = {a*b//math.gcd(a,b)}")
print("LCM de 4 y 6:", math.lcm(4, 6)) # 12
print("LCM de 5 y 7:", math.lcm(5, 7)) # 35
print("LCM de 12 y 18:", math.lcm(12, 18)) # 36
# Verificar la fórmula
a, b = 4, 6
print(f"\n"Verificación: LCM({a}, {b}) = {a} * {b} / GCD({a}, {b}) = {a*b//math.gcd(a,b)}")
Resultado de la ejecución:
4 和 6 的 LCM: 12 5 和 7 的 LCM: 35 12 和 18 的 LCM: 36 验证: LCM(4, 6) = 4 * 6 / GCD(4, 6) = 12
Ejemplo 2: Calcular el LCM de varios números
Ejemplo
import math
print("LCM de 3, 4 y 5:", math.lcm(3, 4, 5)) # 60
print("LCM de 6, 8 y 12:", math.lcm(6, 8, 12)) # 24
print("LCM de 2, 3, 4 y 5:", math.lcm(2, 3, 4, 5)) # 60
print("LCM de 3, 4 y 5:", math.lcm(3, 4, 5)) # 60
print("LCM de 6, 8 y 12:", math.lcm(6, 8, 12)) # 24
print("LCM de 2, 3, 4 y 5:", math.lcm(2, 3, 4, 5)) # 60
Resultado de la ejecución:
3, 4, 5 的 LCM: 60 6, 8, 12 的 LCM: 24 2, 3, 4, 5 的 LCM: 60
Ejemplo 3: Manejo de valores especiales
Ejemplo
import math
print("Entero único 7:", math.lcm(7))
print("LCM de 0 y 5:", math.lcm(0, 5))
print("LCM de -4 y 6:", math.lcm(-4, 6))
print("Entero único 7:", math.lcm(7))
print("LCM de 0 y 5:", math.lcm(0, 5))
print("LCM de -4 y 6:", math.lcm(-4, 6))
Resultado de la ejecución:
单个整数 7: 7 0 和 5 的 LCM: 0 -4 和 6 的 LCM: 12
Ejemplo 4: Aplicación práctica - Denominador común de fracciones
Ejemplo
import math
# Suma de fracciones: 1/4 + 1/6
denom1, denom2 = 4, 6
common_denom = math.lcm(denom1, denom2)
numer1 = 1 * (common_denom // denom1)
numer2 = 1 * (common_denom // denom2)
result = numer1 + numer2
print(f"1/{denom1} + 1/{denom2} = {numer1}/{common_denom} + {numer2}/{common_denom} = {result}/{common_denom}")
# Suma de fracciones: 1/4 + 1/6
denom1, denom2 = 4, 6
common_denom = math.lcm(denom1, denom2)
numer1 = 1 * (common_denom // denom1)
numer2 = 1 * (common_denom // denom2)
result = numer1 + numer2
print(f"1/{denom1} + 1/{denom2} = {numer1}/{common_denom} + {numer2}/{common_denom} = {result}/{common_denom}")
Resultado de la ejecución:
1/4 + 1/6 = 3/12 + 2/12 = 5/12
Ejemplo 5: Aplicación práctica - Sincronización de períodos
Ejemplo
import math
# Los períodos de los tres semáforos son 30, 45 y 60 segundos, respectivamente
light_cycles = [30, 45, 60]
sync_interval = math.lcm(*light_cycles)
print(f"Períodos de los semáforos: {light_cycles}")
print(f"Intervalo de tiempo para que se pongan verdes simultáneamente: {sync_interval} segundos")
# Los períodos de los tres semáforos son 30, 45 y 60 segundos, respectivamente
light_cycles = [30, 45, 60]
sync_interval = math.lcm(*light_cycles)
print(f"Períodos de los semáforos: {light_cycles}")
print(f"Intervalo de tiempo para que se pongan verdes simultáneamente: {sync_interval} segundos")
Resultado de la ejecución:
信号灯周期: [30, 45, 60] 同时变绿的时间间隔: 180 秒
Relación con GCD
Fórmula: LCM(a, b) = a × b / GCD(a, b)
Ejemplo
import math
for a, b in [(4, 6), (8, 12), (15, 20)]:
lcm_val = math.lcm(a, b)
gcd_val = math.gcd(a, b)
print(f"LCM({a}, {b}) = {lcm_val}, GCD({a}, {b}) = {gcd_val}, Verificación: {lcm_val * gcd_val} == {a*b} -> {lcm_val*gcd_val == a*b}")
for a, b in [(4, 6), (8, 12), (15, 20)]:
lcm_val = math.lcm(a, b)
gcd_val = math.gcd(a, b)
print(f"LCM({a}, {b}) = {lcm_val}, GCD({a}, {b}) = {gcd_val}, Verificación: {lcm_val * gcd_val} == {a*b} -> {lcm_val*gcd_val == a*b}")
Resultado de la ejecución:
LCM(4, 6) = 12, GCD(4, 6) = 2, 验证: 24 == 24 -> True LCM(8, 12) = 24, GCD(8, 12) = 4, 验证: 96 == 96 -> True LCM(15, 20) = 60, GCD(15, 20) = 5, 验证: 300 == 300 -> True
Notas
math.lcm()Solo está disponible en Python 3.9+- Los números negativos se calculan con su valor absoluto
- El LCM de 0 y cualquier número es 0
Otras extensiones
Módulo math de Python