Pgcd par la récursivité

Soyez le premier à donner votre avis sur cette source.

Vue 5 201 fois - Téléchargée 301 fois

Description

'Ce progamme est basé sur une propriété mathématique du PGCD:
'A savoir PGCD(A,B)=PGCD(|B-A|,A) .
'Ce qui se réalise très facilement par récurence.
'L'algorithme s'arrète lorsque A=B
'Il traite aussi le cas PGCD(0,0)=1

'On peut calculer le PPCM de la même façon
'A partir de la propriété du PGCD énoncée plus haut et de la formule
'du PPCM : PPCM(A,B)=(A*B)/PGCD(A,B)
'On obtient la formule de récurence:'PPCM(A,B)=PPCM(|B-A|,A)*(B/|B-A|)
'et les conditions d'arret: PPCM(0,0)=0 et PPCM(A,A)=A
'On remarquera que le premier cas d'arret est un cas particulier
'du second (A=0), Il n'y aura donc qu'un seul test dans le code

Source / Exemple :


Public Function PGCD(A, B)
    If A = 0 And B = 0 Then PGCD = 1
        Exit Function 'PGCD(0,0)=1
    End If
    PGCD = IIf(A = B, A, PGCD(Abs(B - A), A))	
End Function

Public Function PPCM(A, B)
    PPCM = IIf(A = B, A, PPCM(Abs(B - A), A) * (B / Abs(B - A)))    
End Function

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Commenter la réponse de Utilisateur anonyme

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.