'This directly calculates the controlled mod of the second half of
the register and puts it in the second
This will look pretty when we get Tensor Symbolically working'

def _apply_operator_Qubit(self, qubits, **options):

    n = 1
    k = 0
    for i in range(self.t):
        k = (k + (n * qubits[(self.t + i)]))
        n = (n * 2)
    out = int(((self.a ** k) % self.N))
    outarray = list(qubits.args[0][:self.t])
    for i in reversed(range(self.t)):
        outarray.append(((out >> i) & 1))
    return Qubit(*outarray)
