Type: Article
Publication Date: 1981-01-01
Citations: 127
DOI: https://doi.org/10.1090/s0025-5718-1981-0595059-1
The paper describes a "probabilistic algorithm" for finding a factor of any large composite integer <italic>n</italic> (the required input is the integer <italic>n</italic> together with an auxiliary sequence of random numbers). It is proved that the expected number of operations which will be required is <inline-formula content-type="math/mathml"> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" alttext="upper O left-parenthesis exp left-brace beta left-parenthesis ln n ln ln n right-parenthesis Superscript 1 slash 2 Baseline right-brace right-parenthesis"> <mml:semantics> <mml:mrow> <mml:mi>O</mml:mi> <mml:mo stretchy="false">(</mml:mo> <mml:mi>exp</mml:mi> <mml:mo><!-- --></mml:mo> <mml:mo fence="false" stretchy="false">{</mml:mo> <mml:mi>β<!-- β --></mml:mi> <mml:mrow class="MJX-TeXAtom-ORD"> <mml:mo stretchy="false">(</mml:mo> <mml:mi>ln</mml:mi> <mml:mo><!-- --></mml:mo> <mml:mi>n</mml:mi> <mml:mi>ln</mml:mi> <mml:mo><!-- --></mml:mo> <mml:mi>ln</mml:mi> <mml:mo><!-- --></mml:mo> <mml:mi>n</mml:mi> <mml:msup> <mml:mo stretchy="false">)</mml:mo> <mml:mrow class="MJX-TeXAtom-ORD"> <mml:mn>1</mml:mn> <mml:mrow class="MJX-TeXAtom-ORD"> <mml:mo>/</mml:mo> </mml:mrow> <mml:mn>2</mml:mn> </mml:mrow> </mml:msup> </mml:mrow> <mml:mo fence="false" stretchy="false">}</mml:mo> <mml:mo stretchy="false">)</mml:mo> </mml:mrow> <mml:annotation encoding="application/x-tex">O(\exp \{ \beta {(\ln n\ln \ln n)^{1/2}}\} )</mml:annotation> </mml:semantics> </mml:math> </inline-formula> for some constant <inline-formula content-type="math/mathml"> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" alttext="beta greater-than 0"> <mml:semantics> <mml:mrow> <mml:mi>β<!-- β --></mml:mi> <mml:mo>></mml:mo> <mml:mn>0</mml:mn> </mml:mrow> <mml:annotation encoding="application/x-tex">\beta > 0</mml:annotation> </mml:semantics> </mml:math> </inline-formula>. Asymptotically, this algorithm is much faster than any previously analyzed algorithm for factoring integers; earlier algorithms have all required <inline-formula content-type="math/mathml"> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" alttext="upper O left-parenthesis n Superscript alpha Baseline right-parenthesis"> <mml:semantics> <mml:mrow> <mml:mi>O</mml:mi> <mml:mo stretchy="false">(</mml:mo> <mml:mrow class="MJX-TeXAtom-ORD"> <mml:msup> <mml:mi>n</mml:mi> <mml:mi>α<!-- α --></mml:mi> </mml:msup> </mml:mrow> <mml:mo stretchy="false">)</mml:mo> </mml:mrow> <mml:annotation encoding="application/x-tex">O({n^\alpha })</mml:annotation> </mml:semantics> </mml:math> </inline-formula> operations where <inline-formula content-type="math/mathml"> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" alttext="alpha greater-than 1 slash 5"> <mml:semantics> <mml:mrow> <mml:mi>α<!-- α --></mml:mi> <mml:mo>></mml:mo> <mml:mn>1</mml:mn> <mml:mrow class="MJX-TeXAtom-ORD"> <mml:mo>/</mml:mo> </mml:mrow> <mml:mn>5</mml:mn> </mml:mrow> <mml:annotation encoding="application/x-tex">\alpha > 1/5</mml:annotation> </mml:semantics> </mml:math> </inline-formula>.