Your task is to create a new implementation of `modpow` so that it computes `(x^y)%n` for large `y`. The problem with the current implementation is that the output of `Math.pow` is so large on our inputs that it won't fit in a 64-bit float.
You're also going to need to be efficient, because we'll be testing some pretty big numbers.
def power_mod(base, exponent, modulus):
    if base is 0: return 0
    if exponent is 0: return 0
    base = base % modulus
    result = 1
    while (exponent > 0):
        if (exponent % 2 == 1):
           result = (result * base) % modulus
        exponent = exponent >> 1
        base = (base * base) % modulus
    return result
def power_mod(base, exponent, modulus):
    if base is 0: return 0
    if exponent is 0: return 0
    base = base % modulus
    result = 1
    while (exponent > 0):
        if (exponent % 2 == 1):
           result = (result * base) % modulus
        exponent = exponent >> 1
        base = (base * base) % modulus
    return result