Сумма серий: 1 ^ 1 + 2 ^ 2 + 3 ^ 3 +… + n ^ n (мод м)
Может ли кто-нибудь дать мне представление об эффективном алгоритме для больших n (скажем, 10 ^ 10), чтобы найти сумму вышеуказанных рядов?
Mycode становится убитым для n = 100000 и m = 200000
#include<stdio.h>
int main() {
int n,m,i,j,sum,t;
scanf("%d%d",&n,&m);
sum=0;
for(i=1;i<=n;i++) {
t=1;
for(j=1;j<=i;j++)
t=((long long)t*i)%m;
sum=(sum+t)%m;
}
printf("%d\n",sum);
}