Cita de: czealt en 1 Julio 2010, 06:26 AM
Tu programa original tambien funciona con unos pequeños ajustes:Código (cpp) [Seleccionar]
//Programa que calcula el m.c.d de dos numeros
//enteros positivos.
#include<iostream>
#include<conio2.h>
using namespace std;
int main()
{
int a,b,mayor, menor,residuo,divisor,dividendo,resultado,mcd;
cout<<"Entra dos numeros enteros: ";
cin>>a>>b;
if(a>=b)
{
mayor=a;
menor=b;
}else
{
mayor=b;
menor=a;
}
dividendo=mayor; // se llama "dividendo" al numero que sera dividido
divisor=menor; // se llama "divisor" al numero que divide
do{
resultado=dividendo/divisor;
residuo=dividendo%divisor;
dividendo=divisor;
divisor=residuo;
}while(divisor!=0);
mcd=dividendo;
if(mcd==1)
{
cout<<"Los numeros :"<<a<<" y "<<b<<" son primos entre si pues el mcd es 1";
} else
{
cout<<"El mcd de "<<a<<" y "<<b<<" es: "<<mcd;
}
getche();
return 0;
}
czealt, tu codigo tiene algunos errores, por ejemplo la division por 0 no es valida.
Esta linea no la utilizas resultado = dividendo / divisor;
Ademas como bien menciono cbug, no es recomendable el uso de la libreria conio ya que no es estandar y esta obsoleta.
Aca dejo un codigo parecido al que venia haciendo jairogon
Código [Seleccionar]
#include <iostream>
#include <cmath>
using namespace std;
int main( void )
{
int a, b, mayor, menor, residuo, divisor, dividendo, mcd;
cout << "Entra dos numeros enteros: ";
cin >> a >> b;
a = abs( a );
b = abs( b );
if ( a >= b )
{
mayor = a;
menor = b;
}
else
{
mayor = b;
menor = a;
}
dividendo = mayor;
divisor = menor;
while ( divisor != 0 )
{
residuo = dividendo % divisor;
dividendo = divisor;
divisor = residuo;
}
mcd = dividendo;
if ( mcd == 1 )
cout << "Los numeros " << a << " y " << b << " son primos entre si pues el m.c.d es 1" << endl;
else
cout << "El m.c.d de " << a << " y " << b << " es: " << mcd << endl;
return 0;
}
Nota: codigo corregido en base a lo planteado por do-while
Salu10.