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}")