PGCD de 2 nombres [Fermé]

Messages postés
102
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
16 avril 2009
- - Dernière réponse :  long ind - 13 janv. 2013 à 22:30
Bonsoir,
quelqu'un peut m'aider ,j'arrive pas à résoudre ce problème :

écrire l'algorithme permettant de calculer de PGCD de deux nombres a et b positifs non nuls tels que a>b en utilisant la méthode de la division euclidienne
principe:
le PGCD de deux nombres peut s'obtenir par la division de a par b, puis de b par le reste obtenu et ainsi de suite jusqu'à ce que l'on obtienne un reste nul,le dernier diviseur est alors le PGCD DE A ET B.

je sais qu'il faut utilisé "mod" et "div" mais j'ai aucune idée sur ces deux instructions

merci d'avance
Afficher la suite 

2 réponses

Messages postés
16028
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
18 septembre 2019
2413
0
Merci
Comment veux-tu qu'on t'aide plus ? Tu as déjà l'algorithme !
Et en supposant que tu veuilles l'implémentation on ne sais pas dans quel langage...
abdelmadjid1990
Messages postés
102
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
16 avril 2009
2 -
bonjour;
je t'ai envoyé ce message en demandant de l'aide,et j'ai déclaré que j'en ai aucune idée comment utiliser les opérateurs "mod" et"div" dans le langage pascal , tu croyais que j'ai voulu la solution ?
et maintenant j'ai trouvé l'algorithme correspondant à cet exercice:


algorithme PGCD;
var k,a,b:entier;
lire(a,b);
répéter
k:= a mod b ;
a:=b;
b:=k;
jusqu'à ce que b=0;
écrire('PGCD:',a);
fin.


merci d'avoir m'aider.
0
Merci
Pour une version Java avec des BigInteger :

private BigInteger PGCD(BigInteger a, BigInteger b)
{
BigInteger k;
BigInteger zero = new BigInteger("0");

while (!(b.equals(zero)))
{
// write("a = " + a + ", b= " + b);
k = a.mod(b);
a = b;
b = k;
}
;

return a;
}