Volver a los desafíos
Fácil 0 resueltos 0% de aceptación

Mínimo Común Múltiplo

Encuentra el número positivo más pequeño divisible por ambos valores.

Lo que aprenderás

  • Calcular el MCM a partir del MCD
  • Evitar el desbordamiento dividiendo antes de multiplicar
  • Reutilizar una función dentro de otra

Problema

Ver original (inglés)

Devuelve el mínimo común múltiplo de a y b, el número positivo más pequeño que ambos dividen. lcm(a, b) = a / gcd(a, b) × b.

Implementa lcm(a, b).

Entrada

a: El primer número positivo. b: El segundo número positivo.

Salida

Devuelve lcm(a, b).

Restricciones

1 ≤ a, b ≤ 1,000,000,000

Ejemplos

Ejemplo 1
Entrada:
a = 4
b = 6

Salida esperada:
expected = 12
Entrada:
long long a = 4;
long long b = 6;

Salida esperada:
long long expected = 12;
Entrada:
long a = 4;
long b = 6;

Salida esperada:
long expected = 12;

Explicación

Múltiplos de 4: 4, 8, 12…; múltiplos de 6: 6, 12…; el primer múltiplo común es 12.

Ejemplo 2
Entrada:
a = 7
b = 7

Salida esperada:
expected = 7
Entrada:
long long a = 7;
long long b = 7;

Salida esperada:
long long expected = 7;
Entrada:
long a = 7;
long b = 7;

Salida esperada:
long expected = 7;

Explicación

El mcm de un número consigo mismo es el propio número: 7.

Cómo abordarlo

Inténtalo primero por tu cuenta y luego abre las pistas una a una.

Pista 1

Usa la relación entre gcd y lcm en lugar de buscar múltiplos.

Pista 2

Calcula primero el gcd y luego combina los dos números con cuidado.

Pista 3

Divide antes de multiplicar para reducir el riesgo de desbordamiento, incluso con entradas grandes.

Complejidad esperada

tiempo O(log min(a, b)), espacio extra O(1)

Referencias

Este reto está adaptado para CodeUtility. Sigue el enunciado y las restricciones indicadas arriba.

Aprende de otros

Soluciones de la comunidad

Aún no hay soluciones publicadas. Resuelve este reto para compartir la primera.