Помимо метода квадрата и умножения, есть этот метод квадрата и умножения-всегда, и я пытаюсь реализовать его в Python.Моя проблема в том, что во время поиска я нашел для него псевдокод здесь и реализовал его в python, но он не дает правильных результатов по сравнению с функцией pow.
Псевдокод можно найти вссылка выше или на этом скриншоте .
Моя реализация
def square_and_multiply_always(base, exp, mod):
R0=1
R1 = base
c = '{0:b}'.format(exp)
i=len(c)
t=0
while i>=0:
if(t==0):
Rt=R0
elif(t==1):
Rt=R1
else:
print("t != 0 or 1")
R0=(R0*Rt)%mod
a=int(c[i-1])
t=(t^a)
i=i-1+t
return R0