Calcular el mínimo común múltiplo en Java

Hola a todos, hoy os voy a explicar como podemos calcular el mínimo común múltiplo en Java.

En matemáticas, el mínimo común múltiplo (abreviado m.c.m.) de dos o más números naturales es el menor múltiplo común de todos ellos (o el ínfimo del conjunto de los múltiplos comunes).

En Java, el proceso que haremos el siguiente:

  • Obtenemos en una variable a el número mayor de los dos números.
  • Obtenemos en una variable b el número menor de los dos números.
  • Hacemos la siguiente formula: (a / mcd) * b. Donde mcd es el máximo común divisor de a y b.

Veamos cada paso en código:

Obtenemos en una variable a el número mayor de los dos números:


public static int mcm(int num1, int num2) {

    int a = Math.max(num1, num2);

}

Obtenemos en una variable b el número menor de los dos números.

public static int mcm(int num1, int num2) {
    int a = Math.max(num1, num2);
    int b = Math.min(num1, num2);

}

Hacemos la siguiente formula: (a / mcd) * b. Donde mcd es el máximo común divisor de a y b.


public static int mcm(int num1, int num2) {
    int a = Math.max(num1, num2);
    int b = Math.min(num1, num2);

    int resultado = (a / mcd(num1, num2)) * b;
    
    return resultado;

}

Para obtener el mcd, lo explicamos aquí:

Como calcular el máximo común divisor en Java

Ahora vamos a probarlo:

public static void main(String[] args) {

    Scanner sn = new Scanner(System.in);

    System.out.println("Dame el primer numero");
    int num1 = sn.nextInt();

    System.out.println("Dame el segundo numero");
    int num2 = sn.nextInt();

    int res = mcm(num1, num2);

    System.out.println("MCM: " + res);

}

Este seria el resultado:

En ese caso, el MCM de 10 y 15 es 30, ya que tienen en común el 30 como múltiplo y es el mínimo de ellos.

Os dejo el ejemplo completo:


import java.util.Scanner;

public class EjemploMCM{

    public static void main(String[] args) {

        Scanner sn = new Scanner(System.in);

        System.out.println("Dame el primer numero");
        int num1 = sn.nextInt();

        System.out.println("Dame el segundo numero");
        int num2 = sn.nextInt();

        int res = mcm(num1, num2);

        System.out.println("MCM: " + res);

    }

    public static int mcm(int num1, int num2) {
        int a = Math.max(num1, num2);
        int b = Math.min(num1, num2);

        int resultado = (a / mcd(num1, num2)) * b;
        
        return resultado;

    }

    public static int mcd(int num1, int num2) {

        int a = Math.max(num1, num2);
        int b = Math.min(num1, num2);

        int resultado = 0;
        do {
            resultado = b;
            b = a % b;
            a = resultado;

        } while (b != 0);

        return resultado;

    }
}


Os dejo un video donde lo explico paso a paso

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte

Compartir

Deja una respuesta

Tu dirección de correo electrónico no será publicada.