我正在用 python 编写一个程序,该程序涉及将一个数字提高到一个极高的指数。为此,我正在尝试实施连续平方法以减少计算时间并消除溢出错误的风险。
连续的正方形是为了做同样的事情,base**exponent % modulo
我写的当前函数是这样的:
def ssp(b, m, n):
ssp = 1
while n>0:
if n % 2 == 1:
ssp = b*ssp % m
b = b**2 % m
n = n // 2
return ssp
当我用我测试函数时,ssp(7, 13, 93)
我得到的答案是 8,应该是 19。有人可以提示我做错了什么吗?