我编写了以下简单函数来执行模幂运算。但是,当指数参数大于约 261,000 时,它会出现段错误。为什么是这样?我该如何解决?
我在 64 位 Ubuntu 上使用 gcc 进行编译。
谢谢
unsigned int modex(unsigned int base, unsigned int exponent, unsigned int modulus)
{
if(exponent == 1)
return base;
base = base % modulus;
if(exponent == 0 || base == 1)
return 1;
return (modex(base, exponent - 1, modulus) * base) % modulus;
}