프로젝트 오일러 30
각 자리의 숫자를 4제곱해서 더했을 때 자기 자신이 되는 수는 놀랍게도 단 세 개밖에 없습니다.
1634 = 14 + 64 + 34 + 44
8208 = 84 + 24 + 04 + 84
9474 = 94 + 44 + 74 + 44
(1 = 14의 경우는 엄밀히 말해 합이 아니므로 제외합니다)
위의 세 숫자를 모두 더하면 1634 + 8208 + 9474 = 19316 입니다.
그렇다면, 각 자리 숫자를 5제곱해서 더했을 때 자기 자신이 되는 수들의 합은 얼마입니까?
-------------------------------------------------------------------------------------
res=0ans=0
num=2
while True:
strNum=str(num)
for i in range(0,(len(strNum))):
res+=pow(int(strNum[i]),5)
if(res==num):
ans+=num
num+=1
res=0
if(num==200000):break
print ans
----------------------------------------------------------------------------------------
반복문 종료조건을 정확히 했어야 했는데 수학적으로 접근하기 힘들어서 그냥 무한루프 돌리고 마지막 값 종료 조건으로 해서 풀었다. 뭔가 맞히고도 찜찜하다...
댓글
댓글 쓰기