def ModExponentiation(b, e, m):
"""
Modular exponentiation algorithm of time complexity = O(log(e)).
Args:
b: An integer representing the base.
e: An integer representing the exponent.
m: An integer representing modulus.
Returns:
An integer c = b^e (mod m).
"""
if e == 0:
return 1
y = b
output = 1
while e > 0:
if e & 1 == 1:
output = (output * y) % m
y = (y * y) % m
e >>= 1
return output
沒有留言:
張貼留言