Shor's Quantum Factoring Algorithm