Calcul du pgcd

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

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.