Palindrome Squares
My son asks me “What do the numbers 26, 264, 307 and 836 all have in common?” After enjoying my puzzled look for a moment, he tells me all their squares are palindromes, but they’re not palindromes themselves.
Most palindrome squares are squares of palindromes, like (11 * 11) == 121, (121 * 121) == 14641, and (22 * 22) == 484. When the digits in palindrome number are small, so there is no carrying when you square, then the square is also a palindrome. But there are a few squares that are palindromes even with all the carrying. Like (307 * 307) == 94249.
Now I can’t let an 11 year-old show me up like that. I may not know all the squares to 1000, but I do know how to program, so I whipped up the following to find more of these squares.
# squares.py
# Python code to find squares that are palindromes.
__author__ = 'nealabq@gmail.com'
def is_palindrome( int_in_question) :
"""
True if int_in_question is an integer that is a
palindrome when written in base 10.
"""
# Change the number into a string and then a list.
as_list_of_chars = list( str( int_in_question))
# Copy the list and reverse it.
reversed_list_of_chars = list( as_list_of_chars)
reversed_list_of_chars.reverse( )
# True if the list of chars is palindromic.
return as_list_of_chars == reversed_list_of_chars
def print_palindrome_squares_up_to( limit) :
"""
Prints all the positive integers up to but not
including limit, where the integer's square is a
palindrome but the integer itself is not. Also
prints the square.
"""
for i in range( limit) :
if not is_palindrome( i) :
if is_palindrome( i * i) :
print( i, i * i)
Then I checked the first 100 million counting numbers. (This took a few minutes.)
>>> import squares >>> squares.print_palindrome_squares_up_to( 100000000) 26 676 264 69696 307 94249 836 698896 2285 5221225 2636 6948496 22865 522808225 24846 617323716 30693 942060249 798644 637832238736 1042151 1086078706801 1109111 1230127210321 1270869 1615108015161 2012748 4051154511504 2294675 5265533355625 3069307 9420645460249 11129361 123862676268321 12028229 144678292876441 12866669 165551171155561 30001253 900075181570009 64030648 4099923883299904 >>>
And there you have it. Integer sequence A059744.
Be sure to check out Feng Yuan’s palindrome page, which says 2,554,237,742,555,355,264,685,484 (more than 2 quindecillion) squared is palindrome 6524130445402999318864545454688139992045440314256.