Munchausen numbers: Difference between revisions

Content added Content deleted
Line 1,263: Line 1,263:




# isMuchausen :: Int -> Bool
# isMunchausen :: Int -> Bool
def isMunchausen(n):
def isMunchausen(n):
return n == foldl(
return n == foldl(
lambda n: lambda c: (lambda v=digitToInt(c): n + v**v)()
lambda n: lambda c: (lambda i=digitToInt(c): n + i**i)()
)(0)(str(n))
)(0)(str(n))


Line 1,285: Line 1,285:
return None
return None
else:
else:
dec = oc - ord('0')
dec = oc - 48 # 0
hexu = oc - ord('A')
hexu = oc - 65 # A
hexl = oc - ord('a')
hexl = oc - 97 # a
return dec if 9 >= dec else (
return dec if 9 >= dec else (
10 + hexu if 0 <= hexu and 5 >= hexu else (
10 + hexu if 0 <= hexu and 5 >= hexu else (