Hong-Phuc Bui
2024-06-17 1573155ab5de837bf4e80ee7349ddf5dffe2f20a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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)