Algoritmos

Fórmula de Luhn

algoritmos

La fórmula de Luhn o fórmula del módulo 10, se usa para comprobar las tarjetas de crédito. Aquí os pongo el código:

"""Luhn formula -- how to check a credit card number"""

def luhn(nCard):
    nSum=0
    nRest=nCard
 
    while nRest>0:
 
        # Odd position
        nRest,nDigit=divmod(nRest,10)
        nSum+=nDigit
    
        # Even position
        nRest,nDigit=divmod(nRest,10)
        if nDigit<5:
            nSum+=2*nDigit
        else:
            nSum+=2*nDigit-9
 
    return nSum%10
 
 def check_card(nCard):
    """Return true if the credit-card number is valid"""
    return luhn(nCard)==0