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
沒有留言:
張貼留言