Formule de Luhn
sam 16 février 2019Petite définition de la Luhn
La formule de Luhn permet de vérifier la validité d’une suite de chiffre. Ex:SIREN, N°CB, N°PS (Médecin praticien, etc…). Le nombre est lu de droite à gauche. Les chiffres en position impaire restent tel quel et les chiffres en position paire sont multipliées par 2. Tous les chiffres résultants sont ajoutés. Exemple 456 :
Chiffres 4 5 6
Position 3 2 1
Résultats 4 10 6
Résultat 4 + 1 + 0 + 6 = 11
Un nombre Luhn est validé si le résultat est divisible par 10. Dans l’exemple précédent, le nombre n’est pas valide ; 11 n’est pas divisible par 10. Un nombre valide est par exemple 455.
Coding
Voici ci-dessous, une procédure écrite pour vérifier un nombre selon la formule de Luhn. Elle est composée d’une procédure principale et 2 sous-procédures.
La sous-procédure CALCUL détermine le résultat des additions successives. Remarque : dans le cas du calcul des positions paires, une autre règle a été appliquée sur les résultats supérieurs à 9. La somme des chiffres obtenus est égale à la multiplication par 2 moins 9.
5x2=10 Résultat 1+0=1 mais aussi 5x2-9=1
6x2=12 Résultat 1+2=3 mais aussi 6x2-9=3
7x2=14 Résultat 1+4=5 mais aussi 7x2-9=5
8x2=16 Résultat 1+6=7 mais aussi 8x2-9=7
9x2=18 Résultat 1+8=9 mais aussi 9x2-9=9
La sous-procédure PARITE détermine si un chiffre est pair ou impair.
[pastacode lang=«rpgle » user=«ibmiiste » repos=«luhn » path_id=«controle_luhn » revision=«master » highlight=»» lines=»» provider=«github»/]