//Ultima modificacion: 1 de julio de 2010 //Este programa usa el ejemplo que viene en el capitulo 2 del libro de //Sedgewick, solo hay que hacer una pequena modificacion al algoritmo de //Euclides. //Nota: Este ingenioso algoritmo fue desarrollado por el matematico Euclides //y esta presente en los Elementos. Su problema consistia en encontrar, dada // dos varas de longitudes distintas, la longitud de una tercera vara con la // cual pudiera medirse las dos anteriores, de tal forma que esta entrara un // numero entero de veces tanto en una como en otra. #include <iostream> using namespace std; int mcd(int, int, int); int main() { int a, b, c, mayor, comun; cout << "\n\nEste programa calcula el maximo comun divisor de tres numeros. " << endl; cout << "Introduzca tres enteros: "<<endl; cin >> a >> b >> c; mayor = a; if ( b > mayor ) { mayor = b; b = a; } if ( c > mayor ) { mayor = c; a = mayor; } comun = mcd(mayor, b, c); cout <<"\nEl maximo comun divisor es: " <<comun << endl; return 0; } int mcd(int z, int u, int v) { int t, maximo; while (u > 0) { if (u < v) { t = u; u = v; v = t; if(0 == z%v) maximo = v; } u = u - v; } return maximo; }
Hola. Gracias por el codigo, ojala te escribas mas programas como estos para los que somos nuevos en esto de la programacion. una sugerencia creo que es mejor si no le pones numeros al codigo porque se ve un poco lioso :)
ResponderEliminar¡Hola, Raymundo! Para subir estos programas en particular (C++) tengo problemas con el HTML. Sin embargo espero resolverlos pronto y poder ponerlos también. Por ahora he tardado en subir porque he estado lejos de mi código, pero he puesto algunos de java, de los cuales te pueden servir los algoritmos. Con relación a los números también espero atender aspectos de la presentación, aunque probablemente no los quite porque son útiles para referencias a errores o depuraciones.
ResponderEliminarTe agradezco mucho tu comentario.
Saludos.