Luhn's Checksum Algorithm

This commit is contained in:
2023-10-17 22:46:33 +02:00
parent de8643b5f2
commit 38610bdd11

21
luhnchecksum.py Normal file
View File

@@ -0,0 +1,21 @@
def luhn_checksum(card_number):
def digits_of(n):
return [int(d) for d in str(n)]
digits = digits_of(card_number)
odd_digits = digits[-1::-2]
even_digits = digits[-2::-2]
checksum = 0
checksum += sum(odd_digits)
for d in even_digits:
checksum += sum(digits_of(d * 2))
return checksum % 10
def is_luhn_valid(card_number):
return luhn_checksum(card_number) == 0
n = int(input())
for _ in range(n):
print("PASS" if is_luhn_valid(input()) else "FAIL")