Pgcd par la récursivité

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

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.