В последнее время я столкнулся с похожим вопросом: мой «n» равен 1435, «m» равен 10 ^ 10. Вот мое решение (C #):
ulong n = 1435, s = 0, mod = 0;
mod = ulong.Parse(Math.Pow(10, 10).ToString());
for (ulong i = 1; i <= n;
{
ulong summand = i;
for (ulong j = 2; j <= i; j++)
{
summand *= i;
summand = summand % mod;
}
s += summand;
s = s % mod;
}
В конце '' равно требуемому числу.