import math

def power_slow(a, n):#a=real n=positive integer
    x = 1.0
    for i in range(n):#repeats n times
        x = x*a
    return x#|f|=n

def power_fast(a, n):#a=real n=positive integer
    x = 1.0
    i = n
    while i > 0:#repeats log2(n) times
        if i % 2 != 0:
            x = x*a
        i = math.floor(i/2)
        if i > 0:
            a = a*a
    return x#|g|=log2(n)

#Logic: g∈O(f),∵∀n∈ℕ+,f(n)>g(n)
#English: f dominates g, because for all natrual n, f is greater than g
#Italian: f domina g, perché per ogni n naturale, f è più grande che g
#Japanese: 毎自然な変数のnに、gよりfが大きだから、fにgが支配される
