Calcul du pgcd

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 630 fois - Téléchargée 35 fois

Contenu du snippet

Ce code permet de calculer le pgcd de 2 nombres. Il est assez simple et n'importe qui devrait le comprendre. J'ai essayé de le commenter un maximum pour les débutants.

Source / Exemple :


#include <stdio.h>
#include <iostream.h>
int nb1,nb2,a,b,r,x;//définition des variables
void main(void) {//fonction main
   printf("Recherche du pgcd des deux nombres...\n");
   scanf("%d %d",&nb1,&nb2);//Attente des données de l'utilisateur
   nb1=(int)nb1;//on convertit les nombres en entier au cas ou
   nb2=(int)nb2;
   printf("Recherche du pgcd...\n");
   if(nb1>nb2){//choix de a et de b: a le plus grand b le plus petit
      a=nb1;
      b=nb2;
   }
   else{
      a=nb2;
      b=nb1;
   }
   //algorithme d'Euclide
   while((a%b)>0){//tant que le reste a et de b est 0
      r=a%b;//le reste de a et de b
      x=a/b;
      x=(int)(x-0.499999999999999999);//on arrondit au nombre en dessous
      printf("%d=%d*%d+%d\n",a,b,x,r);//on affiche ce qu'on fait
      a=b;//a devient b
      b=r;//b devient r
   }
   printf("PGCD(%d,%d)=%d",nb1,nb2,b);//on affiche le résultat
}

A voir également

Ajouter un commentaire Commentaires
Messages postés
2493
Date d'inscription
jeudi 14 juillet 2005
Statut
Contributeur
Dernière intervention
5 juin 2016
1
"#include " => Pas d'utilisation de cout & co.
Le retirer te fait gagner plus de 100ko !!

Sinon, 10/10.
Messages postés
1
Date d'inscription
mercredi 10 octobre 2007
Statut
Membre
Dernière intervention
11 octobre 2007

Merci pour ce code qui m'est bien utile (je dois le faire en TP !!!) en revanche je dois le faire en récursif alors si PAYEN (comme il le précise dans son com) sait le faire en récursif serait-il possible qu'il le fasse publié ? En tout cas merci encore pour le code qui va déjà beaucoup m'aider à essayer de le programmer en récursif !!!
Messages postés
252
Date d'inscription
mercredi 25 octobre 2000
Statut
Membre
Dernière intervention
1 mai 2005

Bien, mais le mieux pour le calcul du PGCD reste encore le recursif ... pour l'élégance (en plus, ca permet de comprendre assez facilement le principe de la récursivité).
Messages postés
408
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
18 décembre 2012

cool, mais pas tlm sais que le pgcd de deux nombre c'est le plus grand diviseur commun a ses deux nombres.

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.