modular exponential modular exponentiation is a type of exponentiation performed over a modulus for more explanation please check https en wikipedia orgwikimodularexponentiation calculate modular exponential def modularexponentialbase int power int mod int if power 0 return 1 base mod result 1 while power 0 if power 1 result result base mod power power 1 base base base mod return result def main calculate modular exponential modular_exponential 5 0 10 1 modular_exponential 2 8 7 4 modular_exponential 3 2 9 1 call modular exponential function
def modular_exponential(base: int, power: int, mod: int):
    

    if power < 0:
        return -1
    base %= mod
    result = 1

    while power > 0:
        if power & 1:
            result = (result * base) % mod
        power = power >> 1
        base = (base * base) % mod

    return result


def main():
    
    print(modular_exponential(3, 200, 13))


if __name__ == "__main__":
    import doctest

    doctest.testmod()

    main()