トップページに戻る
次のC#のサンプルへ
前のC#のサンプルへ
Problem48 1000の1000乗の最後の10桁
問題
次の式は、1の1乗 + 2の2乗 + 3の3乗 + ... + 10の10乗 = 10405071317 である。
では、1の1乗 + 2の2乗 + 3の3乗 + ... + 1000の1000乗 の最後の10桁を求めよ。
ソース
using System;
class Program
{
//const long TargetVal = 10;
const long TargetVal = 1000;
static void Main()
{
long SumVal = 0;
for (long I = 1; I <= TargetVal; I++) {
long wkSumVal = 1;
for (long J = 1; J <= I; J++) {
wkSumVal *= I;
wkSumVal %= 10000000000;
}
SumVal += wkSumVal;
SumVal %= 10000000000;
}
Console.WriteLine("Answer={0}", SumVal);
}
}
実行結果
Answer=9110846700
解説
順に計算しつつ剰余を求めて、不要桁を捨ててます。