En este ejemplo, aprenderá a calcular el LCM (múltiplo común más bajo) de dos números ingresados por el usuario.
Para comprender este ejemplo, debe tener el conocimiento de los siguientes temas de programación en C:
- Operadores de programación C
- C if … else Statement
- C while y do… while Loop
El MCM de dos enteros n1 y n2 es el entero positivo más pequeño que es perfectamente divisible por n1 y n2 (sin un resto). Por ejemplo, el MCM de 72 y 120 es 360.
LCM usando while y if
#include int main() ( int n1, n2, max; printf("Enter two positive integers: "); scanf("%d %d", &n1, &n2); // maximum number between n1 and n2 is stored in min max = (n1> n2) ? n1 : n2; while (1) ( if (max % n1 == 0 && max % n2 == 0) ( printf("The LCM of %d and %d is %d.", n1, n2, max); break; ) ++max; ) return 0; )
Salida
Ingrese dos números enteros positivos: 72 120 El MCM de 72 y 120 es 360.
En este programa, los enteros ingresados por el usuario se almacenan en la variable n1 y n2 respectivamente.
El mayor número entre n1 y n2 se almacena en máx. El MCM de dos números no puede ser menor que máx.
La expresión de prueba del while
bucle siempre es verdadera.
En cada iteración, se comprueba si max es perfectamente divisible entre n1 y n2.
si (min% n1 == 0 && max% n2 == 0) (…)
Si esta condición de prueba no es verdadera, max se incrementa en 1
y la iteración continúa hasta que la expresión de prueba de la if
declaración sea verdadera.
El MCM de dos números también se puede encontrar usando la fórmula:
LCM = (num1 * num2) / GCD
Aprenda a encontrar el GCD de dos números en la programación C.
Cálculo de LCM con GCD
#include int main() ( int n1, n2, i, gcd, lcm; printf("Enter two positive integers: "); scanf("%d %d", &n1, &n2); for (i = 1; i <= n1 && i <= n2; ++i) ( // check if i is a factor of both integers if (n1 % i == 0 && n2 % i == 0) gcd = i; ) lcm = (n1 * n2) / gcd; printf("The LCM of two numbers %d and %d is %d.", n1, n2, lcm); return 0; )
Salida
Ingrese dos números enteros positivos: 72 120 El MCM de dos números 72 y 120 es 360.