Admin Admin
Nombre de messages : 138 Age : 38 Date d'inscription : 02/09/2006
| Sujet: CALCUL DU PGCD DE 2 NBRES PAR SOUSTRACTION et ... Mer 13 Sep - 6:07 | |
| Ce programme calcul le PGCD (plus grand diviseur commun) de deux nombres entiers avec la méthode de la soustraction et avec tous les calcules intermédiaires. - Code:
-
//////////////////////////////////////////////////////////////////////////// /////////// 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; }
| |
|