I'm currently investigating Shor's algorithm and especially Smolin's variant, that he described in his article: https://arxiv.org/abs/1301.7007
My applied changes according to Smolin's variant are here: https://github.com/Sage-Cat/quantum_shors_algorithm
The paper I read you can find in repository docs/Smolin_pretending_large_numbers.pdf
.
To be concise, he suggests to make this changes:
- Find
a
, such asa^2 = 1 mod N
, using Extended Euclidean Algorithm - Set period
r = 2
- And somehow use 2 qubits to simulate finding
a
andr
or smth. (I don't understand the actual use of 2 qubits). From his paper I got only that he uses 2 qubits to get specific CNOT entanglement like this:
operation ValidateAUsingQuantumSubroutine(a : Int, N : Int, r : Int) : Result {
use qubits = Qubit[2];
// Prepare qubits
H(qubits[0]);
CNOT(qubits[0], qubits[1]);
// Measurement could be used to validate assumptions or effects
let measurement = M(qubits[0]);
ResetAll(qubits);
return measurement;
}
But how it helps to validate a, I don't understand.