Largest palindrome product
A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 × 99.
Find the largest palindrome made from the product of two 3-digit numbers.
def compute(): ans = max(i * j for i in range(100, 1000) for j in range(100, 1000) if str(i * j) == str(i * j)[ : : -1]) return str(ans) print(compute())
Programming Problem of this from Hackerrank.com
A palindromic number reads the same both ways. The smallest 6 digit palindrome made from the product of two 3-digit numbers is 101101= 143 x 707.
Find the largest palindrome made from the product of two 3-digit numbers which is less than N .
First line contains T that denotes the number of test cases. This is followed by T lines, each containing an integer, N .
Print the required answer for each test case in a new line.
2 101110 800000
- 101101 is product of 143 and 707 .
- 793397 is product of 869 and 913.
1) Simply find all the palindrome number that are the product of two 3-digits numbers, because they are limited and easy to find.
2) Store them in a list and sort it
3) Go through the list and find which number is smaller than n and break the loop, print the number we find
import sys palindromelist =  for i in range(100, 1000): for j in range(100, 1000): a = i * j if str(a) == str(a)[::-1] and a not in palindromelist: palindromelist.append(a) palindromelist.sort() length = len(palindromelist) n = int(input()) for _ in range(n): a = int(input()) for i in range(length - 1, -1, -1): if palindromelist[i] < a: print(palindromelist[i]) break