2019-07-10 20:09:24 +00:00
|
|
|
"""Modular Exponential."""
|
2018-10-19 12:48:28 +00:00
|
|
|
|
2019-07-10 20:09:24 +00:00
|
|
|
|
|
|
|
def modular_exponential(base, power, mod):
|
|
|
|
"""Calculate Modular Exponential."""
|
|
|
|
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
|
2018-10-19 12:48:28 +00:00
|
|
|
|
|
|
|
|
|
|
|
def main():
|
2019-07-10 20:09:24 +00:00
|
|
|
"""Call Modular Exponential Function."""
|
|
|
|
print(modular_exponential(3, 200, 13))
|
2018-10-19 12:48:28 +00:00
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
2019-07-10 20:09:24 +00:00
|
|
|
main()
|