プロジェクトオイラー48
プロジェクトオイラーの97を解いていたところ、ゴリ押しで説いていた問題48が綺麗に解けたので解答を書きます。Python3で解きました。
問題
Problem 48 - Project Euler
問題は簡単で、
の下10桁を求めなさいというものです。
解答
import time start = time.time() n = 0 #下10桁を表す ''' n^n = n * n * \cdot * nとみて、for文を作り、 n^nの下10桁を残す。 これを1から1000まで動かして和をとり、最後に再び下10桁を残す。 ''' for i in range(1, 1001): m = 1 for j in range(i): m = (m * i) % 10**10 n += m n = n % (10**10) print(n) print(time.time()- start)