""" Thinking about project euler #55 in python class, Nov 4 2010 """ from doctest import testmod class Number: """ Represent a number and the operations appropriate for this problem, namely flipping, palindrom, Lychrel chain, etc """ def __init__(self, n): self.n = n self._flip = None def isPalindrome(self): return self.flip() == self.n def nextLychrel(self): return self.n + self.flip() def flip(self): """ Return base 10 flipped right-to-left version of this number. >>> threefour = Number(34) >>> threefour.flip() 43 """ if not self._flip: digits = list(str(self.n)) digits.reverse() self._flip = int(''.join(digits)) return self._flip if __name__ == '__main__': testmod()