Moussaxp |
Le 07/03/2006 à 15:16 |
|
|
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 |
Anthony |
Le 07/03/2006 à 21:44 |
|
 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 + -- 
|
Invité |
Le 15/03/2006 à 14:47 |
|
|
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é ! |
Anthony |
Le 15/03/2006 à 19:33 |
|
 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. -- 
|
Invité |
Le 15/03/2006 à 19:45 |
|
|
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é ! |
Anthony |
Le 15/03/2006 à 20:07 |
|
 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. -- 
|