Algorithme de Luhn en python

L’algorithme de Luhn également appels algorithmes “mod 10”. Il s’agit d’une simple formule de somme de contrôle utilisée pour vérifier la validité de divers numéros de compte, tels que les numéros de carte bancaire, les numéros de sécurité sociale canadiens, les numéros IMEI mobiles et les numéros SIRET utilisés pour calculer les numéros de compte.

def sommeDesNombres(n):
    somme=0
    while (n>0):
        t= n%10
        somme= somme+t
        n= n//10
    return somme


n= input("Entrer le numero de carte ")
try:
    list_num= list(n)
    if len(list_num)==16:
        s1=0
        s2= 0

        for i in range(-1, -17,-1):     # Starting in reverse order
            digit= list_num[i]
            if i%2 == 0:                # Doubling every 2nd digit
                d= int(digit)*2
                if d>9:                 # Checking for 2-digit number
                    s1= s1 + sommeDesNombres(d)
                else:
                    s1= s1 + d

            else:
                s2= s2+ int(digit)

        total= s1+s2


        if total % 10 == 0:
            print("\nLe numéro est valide")
        else:
            print("\nNuméro invalide")
    else:
        print("\nNuméro invalide")

Voir aussi cette version : https://github.com/jiveshs98/Python-Luhn-algorithm/blob/master/luhn.py

Qiskit tutorial et Qiskit textbook – Liens internes :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.