Решаю задачу по учёбе.
Получаю ошибку OverflowError: math range error.
from math import *
def get_b(p, a):
start_time = time.time()
# b = math.fmod(math.pow(a, p-2), p)
b = pow(a, p-2)
b = b % p
print("--- %s seconds ---" % (time.time() - start_time))
return int(b)
print(get_b(2097151, 9))
Как решить проблему?
Без модуля math всё работает, но я не укладываюсь во время. Я пробовала написать свою реализацию возведения в степень на Python, но она не даёт выигрыша во времени.
Думаю, что ошибка в том, что модуль работает во float. Если это так, то как его заставить его работать с int?