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.

 

1! + 4! + 5! = 1 + 24 + 120 = 145이기 때문에, 145는 재미있는 숫자이다.

각 자리 숫자의 계승(팩토리얼)의 합과 동일한 모든 숫자의 합을 구하시오.

주의: 1! = 1과 2! = 2는 합계가 아니므로 포함되지 않는다.

--------------------------------------------------------------------------

 

각 자리수를 활용하는 문제가 많기 때문에 파이썬의 map을 이용하여각 자리 숫자를 리스트로 바꾸고, 리스트를 다시 숫자로 바꾸는 것이 매우 유용하였다.

 

이 문제에서도 상한이 없기 때문에 먼저 정리하는 것이 필요한데, 9!이 362880이기 때문에 9가 8번 반복되더라도 그것을 합하면 29030400이 되는 것을 감안하면 7자리 숫자 내에 답이 있는 것을 알 수 있다. 0!=1인 것까지 고려하여 매번 팩토리얼 계산에 시간을 낭비하지 않도록 팩토리얼 결과값을 리스트로 만들어서 활용하였다.

 

문제를 해결하는 로직은 간단한데, 숫자가 크기 때문에 시간이 많이 소요되었다.

+ Recent posts