Voila j ai un probleme sur le programme suivant, il marche correctement avec une grande serie de nombres mais quand je tape 15 et 32 il me donne un pgcd de 2(ce qui est faux) alors que quand je tape 32 puis 15 il me donne la bonne reponse. voila j espere que j ai ete assez clair (je debute en programmation donc le code n'est peut etre pas tres "propre").
#include <iostream.h>
main()
{
cout<<"entrez deux nombres :\n";
int a,b;
cin>>a>>b;
cout<<"le premier nombre est "<<a<<" et le second est "<<b<<"\n"; //vérification optionelle des valeurs entrées
if(a<0) a=-a; //valeur absolue de a et de b
if(b<0) b=-b;
int i;
do
{
if(a>b) //on pose une condition pour que le nombre divisé soit toujours le plus grand
{
i=(a%b);
}
else
i=(b%a);
a=b; //on utilise l'algorithme d'Euclide pour déterminer le pgcd de deux nombres
b=i;
}
while(i!=0);
cout<<"le plus grand diviseur commun est :"<<a;
return 0;
}
Voila merci pour votre aide.