Calcul du pgcd de 2 nbres par soustraction (avec les calcules intermédiaires)

Contenu du snippet

Bas ce code permet,comme l'explique le titre, de calculer le PGCD de deux nombres entiers avec la méthode de la soustraction et avec tous les calcules intermédiaires.

Je sais que ce n'est pas follichon, mais bon je suis débutant et j'ai eu à mes débuts du mal à trouver des codes sources clairs , bien expliqués et surtout à mon niveau.
Donc je pense quil en faut kan même, et que entre autre celui ci pourra bien servir à ceux qui débute.

Source / Exemple :


////////////////////////////////////////////////////////////////////////////
///////////        Fais avec Dev c++ 4 par Gulius        //////////////////
//////////    Il existe bcp d'autres solutions et surement      /////////
/////// des plus faciles mais bon je suis débutant donc j'essaye.////
///////////////////////////////////////////////////////////////////////////

#include <iostream> // pour utiliser les entrées et sorties cout et cin
using namespace std;

int main()          //Début de la fonction principale
{
    int a, b, pg, pp, res; //Définition des variables
    cout << "Ce Programme calcule"    //Message d'explication
    << " le PGCD de deux nombres . \n" 
    << "Entrez deux nombres a et b :\n " 
    <<"Entrez a : " << endl;
    cin >> a;                // Entrée du 1er nombre
    cout << "Entrez b : " << endl;
    cin >> b;                //Entrée du seconde nombre
    cout << " " << endl;
    
    if (a<b) pp=a, pg=b;        // On regarde quel est le plus gd 
    else if (b<a) pp=b, pg=a;  //nombre des 2 et on les places ds 
    else                      //deux variable pp et pg
    { pg=a, pp=b;            //(pp= plus petit et pg= plus grand
   
     cout << "\nCes deux nombres sont egaux donc " // Si les 2 nbres 
    << "leurs PGCD est ce meme nombre ." << endl; // sont déjà egaux,
    }                // on indique que leur PGCD est ce même nombre
                                                                                       
    
    while(true)      // boncle infinie (j'aurais pu faire avec un for 
                    // ou un while "fini" )
    {   res = pg-pp; // On calcule (plus grand nbr) - (le plus petit)
        
        if (pp!=pg) // si pp est différent de pg, on indique
        {           // le résultat du clacul
        cout << pg << "-" << pp << "= " << res << endl;
        if(res>pp) pg=res; // on change les variables celon 
        else if(res<pp) pg=pp, pp=res; //le plus grand nombre
        else  pp=res, pg=pp;           // de res et de pp.
        }  //Puis on les replace ds pg et pp et on recommence
        else                        
        {                                       
         cout << pg << "-" << pp << "= 0"<< endl; 
         break;  //On casse la boucle si pp==pg
        }
        
    }
   
                        /*On indique le résultat*/
    cout << "Le PGCD de " << a << " et " << b << " est " << pp << " " << endl;    
    if(res==1) cout << "Ces deux nombres sont donc premiers. " << endl;
    
    system("pause");
    return 0;
}

Conclusion :


Le code a été donc édité et compilé with devc++4 et pi voila tout;
N'hésitez pas à me faire part de vos remarques et tout et tout....merci

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.