Algorithme d'euclide

bonjour

Est il possible d'ameliorer le code suivant que j'ai ecris dans le but de faire ressortir les divisons euclidiennes successives qui découlent de l'algorithme d'euclide en partant de deux entiers A et B ? Merci ....

Sub algo_euclide()
A = inputbox("saisir un entier")
B = inputbox("saisir un autre entier")
w = ""
Do
R = A Mod B
w = w & Chr(10) & A & "=" & B & "." & ((A - A Mod B) / B) & " + " & R
A = B
B = R
Loop Until R = 0
MsgBox "le pgcd vaut :" & A & Chr(10) & " " & w
End Sub

Bonjour,

une petite contribution :

w = w & Chr(10) & A & "=" & B & "." & ((A - R) / B) & " + " & R

Tu recalculais le reste lors de l'affectation du w : A - A Mod B

Sinon j'ai beau me triturer la tête, je ne vois pas comment accélérer tout ça...

Bonjour,

Une fonction VBA Excel existe pour connaitre le PGCD de 2 entiers :

WorksheetFunction.Gcd(A,B)

Bonne journée!

Cindy

Bonjour Cindy, le forum,

oui, tu as raison : il y a bien une fonction PGCD() ; mais :

screen

idem dans ton 2ème post de 16:27 ; et de toute façon, je crois bien que le matheux rocket4 veut faire cette fonction avec sa propre macro, histoire de jouer avec l'algorithme d'Euclide.


edit : j'ai fait une erreur ; je croyais qu'il manquait un P, mais la fonction Excel PGCD() est bien Gcd() en VBA.

exemple : MsgBox WorksheetFunction.Gcd(12, 8) retourne 4

toutes mes excuses à Cindy.

dhany

J'ai eu un petit soucis de post ré-édité que je n'arrive pas à supprimer

Effectivement, ça peut très bien marcher en faisant tout le calcul c'était pour la partie "optimisation du codage".

Cindy

Merci pour vos réponses je connais la formulation WorksheetFunction.Gcd(A,B) mais j'ai preferé obtenir ce resultat depuis l'algo d'euclide

@Cindy

désolé, j'ai fait une erreur ; je croyais qu'il manquait un P, mais la fonction Excel PGCD() est bien Gcd() en VBA.

exemple : MsgBox WorksheetFunction.Gcd(12, 8) retourne 4

je te fais toutes mes excuses ; j'ai édité mon post précédent de 16:42 pour y ajouter ce même texte.

dhany

Rechercher des sujets similaires à "algorithme euclide"