def calculate_luhn(number: int) -> int: """ calculate the Luhn-Checksum of a given number :param number: :return: """ checksum = 0 while number != 0: (quote, even) = divmod(number, 10) (number, odd) = divmod(quote, 10) print(f"odd = {odd} even = {even} ", end="") checksum += even odd = (odd*2) if odd > 9: odd = odd - 9 print(f"twice_odd = {odd}, ", end="") checksum += odd print(f"sum = {checksum}") print(checksum) return checksum % 10 valide = [ 3_78_28_22_46_31_00_05, 3_71_44_96_35_39_84_31, 60_11_11_11_11_11_11_17, 5105105105105100 ] cs = calculate_luhn(valide[1]) print(cs)