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