Skip to content

Commit 2709e62

Browse files
add: Luhn algorithm
Luhn algorithm is mostly used for validation.
1 parent dd10333 commit 2709e62

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
"""
2+
The Luhn Algorithm is widely used for error-checking in various applications, such as verifying credit card numbers.
3+
4+
By building this project, you'll gain experience working with numerical computations and string manipulation.
5+
6+
"""
7+
8+
9+
def verify_card_number(card_number):
10+
sum_of_odd_digits = 0
11+
card_number_reversed = card_number[::-1]
12+
odd_digits = card_number_reversed[::2]
13+
14+
for digit in odd_digits:
15+
sum_of_odd_digits += int(digit)
16+
17+
sum_of_even_digits = 0
18+
even_digits = card_number_reversed[1::2]
19+
for digit in even_digits:
20+
number = int(digit) * 2
21+
if number >= 10:
22+
number = (number // 10) + (number % 10)
23+
sum_of_even_digits += number
24+
total = sum_of_odd_digits + sum_of_even_digits
25+
return total % 10 == 0
26+
27+
28+
def main():
29+
card_number = "4111-1111-4555-1142"
30+
card_translation = str.maketrans({"-": "", " ": ""})
31+
translated_card_number = card_number.translate(card_translation)
32+
33+
if verify_card_number(translated_card_number):
34+
print("VALID!")
35+
else:
36+
print("INVALID!")
37+
38+
39+
main()

0 commit comments

Comments
 (0)