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.
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.
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);
}
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.
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Esta web usa cookies.