En este post te mostraré cómo obtener el mínimo común múltiplo de dos números en Java. Este valor (MCM) es aquel número menor, pero distinto de cero, que es múltiplo de dos números.
Por lo tanto vamos a encontrar el número más pequeño que es múltiplo de dos números usando el lenguaje de programación Java.
Fórmula para la obtención de mínimo común múltiplo
Hay una fórmula (o igualdad; no me regañen los matemáticos) para obtener el MCM de dos números, la cual es:
MCM(a, b) = (a * b) / MCD(a, b)
Que en pocas palabras dice que el mínimo común múltiplo de a y b es igual a (a * b)
dividido entre el Máximo común divisor de a y b. Por lo tanto tenemos que obtener el MCD pero no te preocupes, pues ese tema y fórmula ya los vimos en otro post sobre Java, eres libre de leerlo.
Mínimo común múltiplo en Java
Aplicando la fórmula previamente vista, procedemos primero a ver la fórmula para sacar el Máximo común divisor, que nos servirá para obtener el MCM.
public static int maximoComunDivisor(int a, int b) {
int temporal;//Para no perder b
while (b != 0) {
temporal = b;
b = a % b;
a = temporal;
}
return a;
}
Y después vemos el que calcula el mínimo común múltiplo:
public static int minimoComunMultiplo(int a, int b) {
// Y ahora aplicamos la fórmula que dice:
// MCM(a, b) = (a * b) / MCD(a, b)
return (a * b) / maximoComunDivisor(a, b);
}
Poniendo todo junto
Para demostrar que esto funciona vamos a aplicar las fórmulas con el número 10 y 15. El mínimo común múltiplo de estos valores, es decir, el número más pequeño distinto de cero que es múltiplo de los dos, es 30.
Ya que no existe un número menor a 30 que sea múltiplo de 10 y de 15. Por lo tanto vamos a comprobarlo:
public class Main {
// https://parzibyte.me/blog
public static void main(String[] args) {
int a = 10;
int b = 15;
int mcm = minimoComunMultiplo(a, b);
System.out.printf("El mínimo común múltiplo de %d y %d es %d\n", a, b, mcm);
}
// Vamos a necesitar esta fórmula para calcular el mínimo común múltiplo
public static int maximoComunDivisor(int a, int b) {
int temporal;//Para no perder b
while (b != 0) {
temporal = b;
b = a % b;
a = temporal;
}
return a;
}
public static int minimoComunMultiplo(int a, int b) {
// Y ahora aplicamos la fórmula que dice:
// MCM(a, b) = (a * b) / MCD(a, b)
return (a * b) / maximoComunDivisor(a, b);
}
}
Al ejecutar el código, la salida es correcta.
Y esto funciona para cualquier par de números. También puedes ver más tutoriales de Java.