Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """First variant"""
- def is_palindrome(number):
- """Returns True if the number is a palindrome,
- else False.
- """
- return str(number) == str(number)[::-1]
- def largest_palindrome(max_number, min_number):
- """check the results of multiplication of numbers in a predetermined range
- and returns the largest palindrome
- """
- largest_palindrome = 0
- for i in range(max_number, min_number, -1):
- for k in range(max_number, min_number, -1):
- product = i * k
- if product > largest_palindrome and is_palindrome(product):
- largest_palindrome = product
- return largest_palindrome
- print(largest_palindrome(999, 99))
- """Second Variant with optimisation"""
- def make_palindrome(number):
- """
- Make palindrome from number
- """
- palindrome = int(str(number) + str(number)[::-1])
- return palindrome
- def largest_palindrome():
- """Check the possible palindromes for numbers in descending order
- and returns the first satisfying palindrome.
- """
- largest_possible_number = 999 * 999 # 998001 and it's not a palindrome
- first_half = int(str(largest_possible_number)[:-3]) # 998
- for number in range(first_half, 99, -1): # make possible palindrome in descending order and check it
- for i in range(999, 99, -1):
- palindrome = make_palindrome(number)
- if palindrome / i > 999 and i * i < palindrome:
- break
- if palindrome % i == 0: # if a palindrome satisfies all the conditions - return
- return palindrome
- print(largest_palindrome())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement