Palindromic Squares
We iterate over all N from 1 to 300; if its square in base B is palindromic, add [convertBase(N,base),convertBase(N**2,base)]
to the list of results.
with open('palsquare.in','r') as fin:
base = int(fin.read())
def convertBase(num,base):
chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
if num < base: return chars[num]
else: return convertBase(num//base,base)+chars[num%base]
def isPalindrome(square):
for i in range(len(str(square))):
if str(square)[i] != str(square)[i*-1-1]:
return False
return True
def completeSearch(base):
res = []
for i in range(1,301):
if isPalindrome(convertBase(i**2,base)):
res.append([convertBase(i,base),convertBase(i**2,base)])
return res
rawAns = completeSearch(base)
ans = ''
for i in rawAns:
ans += '%s %s\n' %(i[0],i[1])
print(ans)
with open('palsquare.out','w') as fout:
fout.write(ans)