def IsMultipleOf3(x): # Usage: isMult = IsMultipleOf3(123) is not None x = reduce(lambda x,y : x+y, [int(y) for y in str(x if x > 0 else -x)]) if str(x)[:-1]==str(x)[-1:-1]: while int(str(x)[-1]) > 1 << len(str(x)): x -= 3 try: x /= x except: return IsMultipleOf3 else: return IsMultipleOf3(x)