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

Fou du volant
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

Fou du volant
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

Fou du volant
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