Tu programa original tambien funciona con unos pequeños ajustes:
Código
//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:
#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;
}
#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.