Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def is_palindrome(base,n):
- if n % base == 0:
- return False
- front = n
- back = 0
- while back < front:
- d = front % base
- front = front // base
- if back == front:
- return True
- back = back * base + d
- return front == back
- def revert(base,n):
- r = 0
- while n > 0:
- d = n % base
- n = n // base
- r = r * base + d
- return r
- def make_palindromes(base,d):
- low = base ** (d-1)
- high = low * base
- for n in xrange(low, high):
- b = revert(base,n)
- for a in xrange(base):
- yield ((n * base + a)*high + b)
- def digit_list(base,n):
- if n == 0:
- return [0]
- dl = []
- while n > 0:
- dl.append(n % base)
- n = n // base
- return dl
- b = 113
- d = 3
- for p in make_palindromes(b,d):
- if is_palindrome(b+2,p):
- print p, digit_list(b,p), digit_list(b+2,p)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement