我正在进行RSA任务。由于数字越来越大,因此使用InfInt biginter库。现在,我面临的问题是,如果数字太大,就像6-7位输入一样,则指数函数需要花费太多时间。
InfInt modPow(InfInt base, InfInt exp, InfInt n)
{
base = base%n;
if (exp == 0)
return 1;
else if (exp == 1)
return base;
else if (exp%2 == 0)
return modPow(base*base%n, exp/2, n);
else
return base*modPow(base, exp-1, n)%n;
}
无论如何,我可以提高速度吗?我读过Euler的方法和其他方法,但不能理解。如果有人能解释如何加快这个功能,那将会很棒。
由于