project euler 48

오일러 프로젝트 48 번

1^1 + 2^2 + 3^3 + ... + 10^10 = 10405071317 입니다.

1^1 + 2^2 + 3^3 + ... + 1000^1000 의 마지막 10자리 숫자는 무엇입니까?

http://euler.synap.co.kr/prob_detail.php?id=48

C나 Java의 경우 숫자값 타입은 크기의 한계가 정해져있기 때문에 이 문제는 크기의 한계가 없는 큰 수를 위한 데이터타입을 따로 만들어서 풀어야 한다.

파이썬의 int 형은 이미 큰 수를 지원하므로…

def e48():
    print(str(sum((x**x for x in range(1, 1001))))[-10:])

%time e48()
#9110846700
#Wall time: 60 ms