Se me ocurren dos formas de resolverlo:
1. Enfoque ingenuo ()
#include
#include
int main ()
{
int num1, num2, x, y;
scanf (“% d% d”, & num1, & num2);
x = num1;
y = num2;
while (num1! = num2)
{
si (num1 <num2)
num1 = num1 + x;
de lo contrario num2 = num2 + y;
}
printf (“% d”, num1);
devuelve 0;
}
2. Considerando el hecho de que:
a * b = mcm (a, b) * mcd (a, b)
por lo tanto, mcm (a, b) = (a * b) / mcd (a, b)
- Cómo establecer un límite máximo y mínimo para una variable entera / flotante en la definición
- Cómo escribir un algoritmo para un programa complicado que tiene muchos bucles, conmutadores y otros procesos dentro de una instrucción if-then
- ¿Cuál es el algoritmo más preciso (sin usar un software) para predecir el número 21 basado en 20 números anteriores?
- ¿Cuáles son algunos de los códigos más pequeños que generan un número pseudoaleatorio?
- Cómo resolver el problema INUMBER usando gráficos
ahora primero encontramos mcd usando recursividad y luego con esta fórmula podemos encontrar fácilmente el mcm de los dos números dados.
***** pseudocódigo *****
int gcd (int num1, int num2)
{
si (num1 == num2)
return num1;
if (num1> num2)
return gcd (num1-num2, num2);
return gcd (num1, num2-num1);
}
int mcm (int num1, int num2)
{
return (num1 * num2) / mcd (num1, num2);
}