Project Euler [Problem 48]
剰余は維持されるよという話じゃな
暗号ではおなじみ。
問題
Self powers
The series, 11 + 22 + 33 + ... + 1010 = 10405071317.
Find the last ten digits of the series, 11 + 22 + 33 + ... + 10001000.
私訳
自身の冪
1から10までのそれ自身の冪級数は, 11 + 22 + 33 + ... + 1010 = 10405071317 である。
以下の冪級数の下10桁を求めよ。 11 + 22 + 33 + ... + 10001000.
解答方針
1010 で割った剰余を求めればよい。 a*b mod m = (a mod m) * (b mod m) であることを利用する。
あとは、計算時間を早くするために k 乗を log k で実行するくらいか。