(Python)
from __future__ import division
def palgen(l, b=10): # generator of palindromes in base b of length <= 2*l
....if l > 0:
........yield 0
........for x in range(1, l+1):
............n = b**(x-1)
............n2 = n*b
............for y in range(n, n2):
................k, m = y//b, 0
................while k >= b:
....................k, r = divmod(k, b)
....................m = b*m + r
................yield y*n + b*m + k
............for y in range(n, n2):
................k, m = y, 0
................while k >= b:
....................k, r = divmod(k, b)
....................m = b*m + r
................yield y*n2 + b*m + k
def reversedigits(n, b=10): # reverse digits of n in base b
....x, y = n, 0
....while x >= b:
........x, r = divmod(x, b)
........y = b*y + r
....return b*y + x
for n in palgen(4):
....x = reversedigits(n, 256)
....if n > 255 and x == reversedigits(x, 10):
|