Problem 4
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.
Solution
–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.
— this is a fun query
— we join the number table to
— itself ensuring that the right
— number is greater than or equal
— to the left number
SELECT MAX(LeftNumber.number * RightNumber.number)
FROM Number LeftNumber
INNER JOIN Number RightNumber
ON LeftNumber.number <= RightNumber.number
— then we limit the numbers to 3 digits
— an obvious (and better) method for this is
— LeftNumber.number >= 100
— and LeftNumber.number <= 999
— but this technique is more interesting
WHERE LEN(CAST(LeftNumber.number AS VARCHAR)) = 3
and LEN(CAST(RightNumber.number AS VARCHAR)) = 3
— finally, the clever part is determining
— the palindromicity of the product
and(CAST(LeftNumber.number * RightNumber.number AS VARCHAR)
= REVERSE(CAST(LeftNumber.number * RightNumber.number AS VARCHAR)))
Discussion
I am quite happy with this solution.
If you have questions, leave a comment or please find me on Twitter (@azzlsoft) or email (rich@azzlsoft.com).