RE:ALGORITMO MINIMO COMUN MULTIPLO
Publicado por
Manusoftar® (1 intervención) el 08/04/2009 17:53:38
Otra posibilidad sin bucles del algoritmo para minimo común múltiplo:
#include <stdio.h>
#include <stdlib.h>
int mcd(int,int);
main(){
int a,b,mcm;
char s,t='s',u;
while (t=='s' || t=='S'){
printf("
Primer número:");
scanf("%d",&a);
fflush(stdin);
printf("
Segundo número:");
scanf("%d",&b);
fflush(stdin);
if (a==0 || b==0){
printf("No existe ningún mcm entre 0 y 0, o bien ha generado un error de división por 0
");
exit(0);
}
mcm=(a*b)/mcd(a,b);
printf("El mínimo común múltiplo entre %d y %d es: %d
",a,b,mcm);
printf("Nuevo cálculo (s/n):");
scanf("%c%c%c",&s,&t,&u);
}
}
int mcd(int n, int m){
int result;
if (m > n){
m -= ((int)(m/n))*n;
n -= m;
result = n;
} else {
n -= ((int)(n/m))*m;
m -= n;
result = m;
}
return result;
}
Lo interesante de este algoritmo es que, si bien es más largo (tiene más líneas), la complejidad se ve reducida considerablemente ya que, independientemente de los números que se ingresen, solo se realisará una ejecución para calcular el mcd.
Este ejemplo está probado y compila sin errores.
PD: Lo programé en Linux, por eso no utiliso conio.h ni getch();
Atte. Manuel Fernández.