Hong-Phuc Bui
20 hours ago aafb72c1dc3c1674e4b3c55586384bfdb7ff2be7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def luhn(n:int):
    d = n
    luhn_checksum = 0
    while d != 0:
        # Verarbeitung der Stelle 10^0, 10^2, 10^4,...
        d,ungerade = divmod(d, 10)
        luhn_checksum += ungerade
        # Verarbeitung der Stelle 10^1, 10^2, 10^3,...
        d,gerade = divmod(d, 10)
        gerade *= 2
        if gerade > 9: gerade -= 9
        luhn_checksum += gerade
    return luhn_checksum, luhn_checksum%10 == 0
        
 
 
n = int("371-4496-3539-8431".replace('-',''))
checksum, valid = luhn(n)
print(f"Luhn-checksum: {checksum}, gültig = {valid}")