  Quantum algorithms are able to solve particular problems exponentially faster
than conventional algorithms, when implemented on a quantum computer. However,
all demonstrations to date have required already knowing the answer to
construct the algorithm. We have implemented the complete quantum phase
estimation algorithm for a single qubit unitary in which the answer is
calculated by the algorithm. We use a new approach to implementing the
controlled-unitary operations that lie at the heart of the majority of quantum
algorithms that is more efficient and does not require the eigenvalues of the
unitary to be known. These results point the way to efficient quantum
simulations and quantum metrology applications in the near term, and to
factoring large numbers in the longer term. This approach is architecture
independent and thus can be used in other physical implementations.
