En la entrada de hoy mostraré como se implementa el algoritmo para hallar el Mínimo Común Múltiplo entre dos números enteros, el cual explicamos en este artículo, y que además ya hemos visto su implementación en algunos lenguajes de presentación.
Normalmente, cuando expreso un algoritmo en pseudocódigo lo hago en conjunto con su respectivo diagrama de flujo, sin embargo, debido a que para el mcm hemos definido dos formas de resolverlo y para no hacer tan larga esta entrada, he decidido dedicarla solamente para mostrar el pseudocódigo y posteriormente en otro artículo mostraré los diagramas de flujo.
Pues bien, como lo hemos venido haciendo con los otros lenguajes de programación, primero mostraré como hallar el mínimo común múltiplo a través del algoritmo de Euclides, y posteriormente mostraré la otra opción que consiste en iterar en todos los valores enteros positivos menores o iguales al menor de los dos números.
Veamos cómo sería mediante el Algoritmo de Euclides:
// SubProceso "may" para hallar el mayor // @param num1 // @param num2 // @return max SubProceso max <- may (num1, num2) Si num1>=num2 Entonces max <- num1 Sino max <- num2 FinSi Fin SubProceso // SubProceso "men" para hallar el menor // @param num1 // @param num2 // @return min SubProceso min <- men (num1, num2) Si num1<=num2 Entonces min <- num1 Sino min <- num2 FinSi Fin SubProceso // SubProceso "hallar_mcd" para hallar el Máximo Común Divisor // @param num1 // @param num2 // @return mcd SubProceso mcd <- hallar_mcd (num1, num2) Definir a, b Como Entero a <- may(num1, num2) b <- men(num1, num2) Mientras b!=0 Hacer mcd <- b b <- a MOD b a <- mcd FinMientras Fin SubProceso // SubProceso "hallar_mcm" para hallar el Mínimo Común Múltiplo // @param num1 // @param num2 // @return mcm SubProceso mcm <- hallar_mcm (num1, num2) Definir a, b Como Entero a <- may(num1, num2) b <- men(num1, num2) mcm <- (a/hallar_mcd(a,b))*b Fin SubProceso // Proceso Principal Proceso MinComMult Definir num1, num2 Como Entero Escribir 'Ingrese el primer numero:' Leer num1 Escribir 'Ingrese el segundo numero:' Leer num2 Escribir 'El MCM entre ',num1,' y ',num2,' es: ',hallar_mcm(num1, num2) FinProceso
Ahora veamos la otra forma:
// SubProceso para hallar el menor de dos numeros SubProceso min<-men (num1,num2) Si num1<=num2 Entonces min<-num1 Sino min<-num2 FinSi FinSubProceso // Proceso principal Proceso MinComMult // Definimos las variables Definir num1,num2,mcd,min,mcm Como Entero // Pedimos al usuario que ingrese los datos Escribir 'Ingrese el primer numero:' Leer num1 Escribir 'Ingrese el segundo numero:' Leer num2 // Seleccionamos el menor entre num1 y num2 min<-men(num1,num2) // Hacemos un ciclo Para, con el cual iteraremos en los // valores enteros positivos menores a la variable min Para i<-1 Hasta min Hacer // Comprobamos la división exacta de num1 y num2 // entre todos los valores de i Si (num1 MOD i=0) Y (num2 MOD i=0) Entonces // Pueden haber varios valores i que sean // divisores exactos de num1 y num2, sin embargo // solamente el último que cumpla esta condición // será el mcd mcd<-i // Calculamos el mcm mcm<-(num1*num2)/mcd FinSi FinPara // Mostramoes el resultado en pantalla Escribir 'El M.C.M. entre ',num1,' y ',num2,' es: ',mcm FinProceso
Finalmente, sólo nos queda probar el código, dejando por claro que a pesar de que el primero es mucho más efectivo que el segundo, pues logra resolverse en menos iteraciones, cualquiera de los dos debe arrojar el mismo resultado.
Así pues, como lo hicimos en los otros lenguajes, probaremos estos códigos con los números 12 y 18, y por ende el resultado debe ser entonces 36:
como haría para sacar el mcm de 3 numero
ResponderBorrargracias por el aporte...saludos y sigue adelante
ResponderBorrarme bota error min<-men(num1,num2)
ResponderBorrarque es men
¿Qué IDE está usando? Recuerda que el pseudocódigo no es un lenguaje estándar, y la sintaxis de este ejemplo es la que se usa en PSeint, así que si usas uno distinto, como por ejemplo LPP, probablemente no te funcione. Si quieres muestrame aquí el código y veremos cual es el error
Borrar