Shor's factoring algorithm