-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy paths004-largest-palindrome-product.py
More file actions
39 lines (33 loc) · 959 Bytes
/
s004-largest-palindrome-product.py
File metadata and controls
39 lines (33 loc) · 959 Bytes
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
29
30
31
32
33
34
35
36
37
38
39
# Project Euler 4 - Largest Palindrome Product
# GitHub: urtuba
def is_palindrome(num: int) -> bool:
'''
Checks if given number is a palindrome.
:param num: given number
:return: result of check
'''
number = str(num)
length = len(number)
for i in range(int(length/2)):
if number[i] != number[length-1-i]:
return False
return True
def largest_palindrome_product(digits: int) -> int:
'''
Finds largest palindrome product of numbers with n digits.
:param digits: number of digits
:return: largest palindrome product
'''
maximum = 10**digits
numbers = set()
for x in range(maximum):
for y in range(maximum):
numbers.add(x*y)
numbers = list(numbers)
numbers.sort(reverse=True)
for num in numbers:
if is_palindrome(num):
return num
if __name__ == '__main__':
result = largest_palindrome_product(3)
print(result)