This algorithm provides an
alternative way of factoring integers and calculating discrete logarithms. Not only that, it is
used in many applications such as quantum counting. It has applications in order finding as well as applications in discrete logarithm.