Dados dos enteros , su máximo común divisor es tal que divide a ambos y , es decir es un divisor común de y , y cualquier otro divisor común divide a también. Se puede ver que es el menor entero positivo que se puede escribir como una combinación lineal de y con coeficientes enteros. El Algoritmo de Euclides calcula, para dos enteros y dados, y lo expresa de la forma , con .
Los enteros y son primos relativos si , es decir, si no poseen un divisor común que no sea trivial. Sea el conjunto de enteros positivos primos relativos con , menores que . Se tiene que el número de elementos en es el valor de la función de Euler en . Con la multiplicación módulo , es un grupo de orden . Así pues, si entonces . Por tanto, para cada entero existe un mínimo elemento , divisor de , tal que . Tal se dice ser el orden de en el grupo multiplicativo de residuos módulo .
Sea un entero para el cual se ha de buscar un factor entero no trivial. Elijamos un entero tal que . Si , entonces es un factor no-trivial de . En otro caso, , y se tiene que quedará en el grupo multiplicativo de residuos de , i.e. . Si acaso tuviera ahí un orden par , entonces es tal que . En consecuencia, , es decir divide al producto de dos números menores que él. Por tanto, los factores primos de han de aparecer como factores de esos números. Así pues al calcular y obtendremos factores no-triviales de .
Un primer problema en este procedimiento de decisión consiste entonces en encontrar un elemento de orden par en el grupo multiplicativo de residuos módulo . Si se elige al azar, la probabilidad de que sea de orden par es donde es el número de factores primos en . Así pues, la probabilidad de que al cabo de intentos no se haya localizado un tal es y obviamente esto tiende a cero muy rápidamente al incrementar . Así pues, bien vale la pena repetir pruebas arbitrarias de selección de un elemento (impar) menor que para localizar uno de orden par en el grupo multiplicativo de residuos módulo .
Sin embargo, desde el punto de vista computacional, el mayor problema que presenta el algoritmo descrito radica en el cálculo del orden del elemento actual en : el número de potencias de a calcular es del orden de que a su vez es de orden .
Sea el número de bits necesarios para escribir a , es decir, sea el tamaño de . Resulta claro que lo cual indica que el procedimiento anterior es de complejidad exponencial respecto al tamaño de la entrada. El algoritmo de Shor se fundamenta en un procedimiento polinomial en para realizar la tarea de calcular el orden de un elemento.