Peter Shor Algorithm