LE PGCD de 2 nombres
Hors ligneMoussaxp Le 07/03/2006 à 15:16 Profil de Moussaxp Configuration de Moussaxp

bon jour..j'ai un probleme sur l'algorithme qui cherche le PGCD de deux entiers a et b sachant que le recherche de PGCD de a et b devient de chercher le PGCD de a et (a-b) avec a > b .en utulise les fonctions ou/et des procedeures ( PGCD=le plus grand diveseur commun de a et b ) .quelqu'un peut m'aider S.V.P .donne au moins le decopage modulair....Merci
Hors ligneAnthony Le 07/03/2006 à 21:44 Profil de Anthony Configuration de Anthony

Admin
Salut,

voici un petit programme basique que j'ai fait en c++, j'espère que ça pourra t'aider pour d'autres langages :



#include <iostream>

using namespace std;

int pgcd(int nb1,int nb2);

int main(int argc, char *argv[])
{
    int arg1,arg2;
    
    printf("Entrez vos deux nombres pour lesquels il faut calculer le PGCD");
    scanf("%d %d",&arg1,&arg2);
    printf("Le PGCD des deux nombres passés en paramètres est : %d",pgcd(arg1,arg2));
    
    system("PAUSE");
    return 0;
}

//----------------------------------------
//CALCULE LE PGCD ENTRE LES DEUX NOMBRES
//PASSES EN ARGUMENTS
//----------------------------------------
int pgcd(int nb1,int nb2)
{  
    int reste=nb2,tampon=nb2;
    int dividende=nb1;
    int diviseur=nb2;
    
    while(reste!=0)
    {
         if((tampon=dividende%diviseur)==0)
         {
                return reste;  
         }
         else
         {
             reste=tampon;
             dividende=diviseur;
             diviseur=reste;
         }
    }
}



a +
--

Hors ligneInvité Le 15/03/2006 à 14:47 Profil de Invité Configuration de Invité

salut

Anthio : remplace
#include <iostream>

par
#include <stdio.h>

et supprime
using namespace std;

et c'est aussi du C...

c'est l'algorithme d'euclide...

personellement, j'aurais pensé à ça :


#include <stdio.h>

int pgcd(int nb1,int nb2)
{
int reste= nb1%nb2;
if (reste==0)
return nb2;
else
return pgcd(nb2, reste);
}

int main(void)
{
int arg1,arg2;
printf("Entrez vos deux nombres pour lesquels il faut calculer le PGCD\n");
scanf("%d %d\n",&arg1,&arg2);
printf("Le PGCD des deux nombres passés en paramètres est : %d\n\n",pgcd(arg1,arg2));
return 0;
}

mais je sais pas pourquoi, mon compilateur merde complètement...
--
Compte invité - devenez membre pour disposer de votre compte personnalisé !
Hors ligneAnthony Le 15/03/2006 à 19:33 Profil de Anthony Configuration de Anthony

Admin
Coucou > system n'est pas déclarée dans stdio, et sous windows apparemment j'ai pas trouvé d'autre moyen à part de faire une boucle infinie pour ne pas couper le terminal.
--

Hors ligneInvité Le 15/03/2006 à 19:45 Profil de Invité Configuration de Invité

stdlib ? dos.h ?

bref, tu peux trouver normalement...

Bon, tfaçon, c'est l'algo qui compte, personellement, je préfères le mien, et si il est plus lent, passe tes vars par références...
--
Compte invité - devenez membre pour disposer de votre compte personnalisé !
Hors ligneAnthony Le 15/03/2006 à 20:07 Profil de Anthony Configuration de Anthony

Admin
Le tien est pas mal en effet. Sinon pour system apparemment c'est dans dos.h en effet, je suis pas un pro du C++ ^^

EDIT : system n'est pas dans <dos.h> je verrai plus tard pour modifier ça.
--

Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels