euler/python/e034.py

27 lines
527 B
Python

from lib_misc import factorial
def is_curious(n):
s = sum([factorial(int(d)) for d in str(n)])
return n == s
def is_curious_faster(n):
""" Potentially faster solution. """
s = 0
for d in str(n):
s += factorial(int(d))
if s > n:
return False
return n == s
def euler_034():
return sum([n for n in range(3, 10**5) if is_curious(n)])
if __name__ == "__main__":
assert(is_curious(145))
print("e034.py: {}".format(euler_034()))
assert(euler_034() == 40730)