(2^n)%p (n は 10^36 の次数の非常に大きな数で、p は素数) を見つけるように求める質問に行き詰まりました。このアルゴリズム全体で使用できますが、10^36 が非常に大きいため、スタック オーバーフローが発生します。
double power(double a,double b,int mod)
{
if (b==0)
return 1;
else if(b%2==0)
return square(power(a,b/2,mod))%mod;
else return power(a,b-1,mod)%mod;
}
彼らの他の方法やこれに対する改善はありますか??