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)