[Project Euler] Problem 34

원문: Problem 34
145 is a curious number, as 1! + 4! + 5! = 1 + 24 + 120 = 145.

Find the sum of all numbers which are equal to the sum of the factorial of their digits.

Note: as 1! = 1 and 2! = 2 are not sums they are not included.

145는 1! + 4! + 5! = 1 + 24 + 120 = 145로써, 기이한 수이다.

어떤 수가 그것의 자리수들의 계승(factorial)의 합과 같은 모든 수들의 합을 찾아라.

주의: 1! = 1과 2! = 2은 합이 아니기 때문에, 이것들은 포함되지 않는다.

30번 문제와 비슷한 문제다. 먼저, 제한을 걸어야 하는데, 같은 방식으로 제한을 걸면 9! * 7이하의 수가 제한이 될 수 있다.

Python
>>> from math import factorial as fac
>>> Sum = 0
>>> for i in range(3, 2540160):
...     if i == sum(fac(int(k)) for k in str(i)):
...             Sum += i
... 
>>> print(Sum)
접기

댓글 없음:

댓글 쓰기