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í:

https://www.discoduroderoer.es/como-calcular-el-maximo-comun-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

Etiquetas

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *