프로젝트 오일러 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=0
ans=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
----------------------------------------------------------------------------------------
반복문 종료조건을 정확히 했어야 했는데 수학적으로 접근하기 힘들어서 그냥 무한루프 돌리고 마지막 값 종료 조건으로 해서 풀었다. 뭔가 맞히고도 찜찜하다...

댓글

이 블로그의 인기 게시물

윈도우 설치에서 파티션 설정 오류(NTFS)

[exploit writing] 1_스택 기반 오버플로우 (1) First

하둡 설치 오류 정리