49 Возвести число натуральную степень за как можно меньшее количество

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#49. Возвести число А в натуральную степень n за как можно меньшее количество умножений.
def fastExp(b, n):
def even(n):#проверка четности
if n%2==0:
return 1
return 0
if n==0:
return 1
if even(n):
return fastExp(b, n/2)**2
return b*fastExp(b, n-1)