Function Pgcd2(ByVal A As Long, ByVal B As Long) As Long 'Calcul le PGCD de deux nombres 'Variante optimisant l'Algo d'Euclide 'Déclarations Dim R As Long 'validité paramètre If A = 0 And B = 0 Then Exit Function 'Pas de solution If A < B Then R = B: B = A: A = R 'inverse les valeurs 'Algo Do While Abs(B) >= 1 R = A - Int(A / B + 0.5) * B 'Ici le +0.5 permet de réduire mathématiquement le nb de boucle nécessaire A = B B = R Loop Pgcd2 = Abs(A) End Function
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.