Используйте целочисленную арифметику, int
s в Python не переполняется, поэтому нет необходимости выполнять вычисления с плавающей запятой. Рассчитайте мощность самостоятельно:
def pow(a, b):
n = 1
for i in range(b):
n *= a
return a
который является O (n). Вы также можете попробовать метод O (LG N):
def pow(a, b):
if b == 0:
return 1
temp = pow(a, b/2)
if b % 2 == 0:
return temp * temp
return temp * temp * a
Рассчитайте сумму цифр, как вы делаете сейчас.