<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Integer_factorization</id>
	<title>Integer factorization - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Integer_factorization"/>
	<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Integer_factorization&amp;action=history"/>
	<updated>2026-05-04T17:23:14Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Integer_factorization&amp;diff=3120124&amp;oldid=prev</id>
		<title>imported&gt;Tassedethe at 19:54, 20 September 2025</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Integer_factorization&amp;diff=3120124&amp;oldid=prev"/>
		<updated>2025-09-20T19:54:22Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Previous revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:54, 20 September 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l54&quot;&gt;Line 54:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 54:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Time complexity ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Time complexity ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;No [[algorithm]] has been published that can factor all integers in [[polynomial time]], that is, that can factor a {{math|&#039;&#039;b&#039;&#039;}}-bit number {{math|&#039;&#039;n&#039;&#039;}} in time {{math|[[Big O notation|O]](&#039;&#039;b&#039;&#039;&amp;lt;sup&amp;gt;&#039;&#039;k&#039;&#039;&amp;lt;/sup&amp;gt;)}} for some constant {{math|&#039;&#039;k&#039;&#039;}}. Neither the existence nor non-existence of such algorithms has been proved, but it is generally suspected that they do not exist.&amp;lt;ref&amp;gt;{{citation |last=Krantz |first=Steven G. |author-link=Steven G. Krantz |doi=10.1007/978-0-387-48744-1 |isbn=978-0-387-48908-7 |location=New York |mr=2789493 |page=203 |publisher=Springer |title=The Proof is in the Pudding: The Changing Nature of Mathematical Proof |url=https://books.google.com/books?id=mMZBtxVZiQoC&amp;amp;pg=PA203 |year=2011}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{citation |last1=Arora |first1=Sanjeev |author1-link=Sanjeev Arora |last2=Barak |first2=Boaz |doi=10.1017/CBO9780511804090 |isbn=978-0-521-42426-4 |location=Cambridge |mr=2500087 |page=230 |publisher=Cambridge University Press |title=Computational complexity |url=https://books.google.com/books?id=nGvI7cOuOOQC&amp;amp;pg=PA230 |year=2009|s2cid=215746906 }}&amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;No [[algorithm]] has been published that can factor all integers in [[polynomial time]], that is, that can factor a {{math|&#039;&#039;b&#039;&#039;}}-bit number {{math|&#039;&#039;n&#039;&#039;}} in time {{math|[[Big O notation|O]](&#039;&#039;b&#039;&#039;&amp;lt;sup&amp;gt;&#039;&#039;k&#039;&#039;&amp;lt;/sup&amp;gt;)}} for some constant {{math|&#039;&#039;k&#039;&#039;}}. Neither the existence nor non-existence of such algorithms has been proved, but it is generally suspected that they do not exist.&amp;lt;ref&amp;gt;{{citation |last=Krantz |first=Steven G. |author-link=Steven G. Krantz |doi=10.1007/978-0-387-48744-1 |isbn=978-0-387-48908-7 |location=New York |mr=2789493 |page=203 |publisher=Springer |title=The Proof is in the Pudding: The Changing Nature of Mathematical Proof |url=https://books.google.com/books?id=mMZBtxVZiQoC&amp;amp;pg=PA203 |year=2011}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{citation |last1=Arora |first1=Sanjeev |author1-link=Sanjeev Arora &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(computer scientist) &lt;/ins&gt;|last2=Barak |first2=Boaz |doi=10.1017/CBO9780511804090 |isbn=978-0-521-42426-4 |location=Cambridge |mr=2500087 |page=230 |publisher=Cambridge University Press |title=Computational complexity |url=https://books.google.com/books?id=nGvI7cOuOOQC&amp;amp;pg=PA230 |year=2009|s2cid=215746906 }}&amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;There are published algorithms that are faster than {{math|O((1 + &amp;#039;&amp;#039;ε&amp;#039;&amp;#039;)&amp;lt;sup&amp;gt;&amp;#039;&amp;#039;b&amp;#039;&amp;#039;&amp;lt;/sup&amp;gt;)}} for all positive {{math|&amp;#039;&amp;#039;ε&amp;#039;&amp;#039;}}, that is, [[Time complexity#Sub-exponential time|sub-exponential]].  {{As of|2022}}, the algorithm with best theoretical asymptotic running time is the [[general number field sieve]] (GNFS), first published in 1993,&amp;lt;ref&amp;gt;{{cite book |last1=Buhler |first1=J. P. |last2=Lenstra |first2=H. W. Jr. |last3=Pomerance |first3=Carl |chapter=Factoring integers with the number field sieve |title=The development of the number field sieve |date=1993 |publisher=Springer |isbn=978-3-540-57013-4 |pages=50–94 |doi=10.1007/BFb0091539 |hdl=1887/2149 |series=Lecture Notes in Mathematics |volume=1554 |url=https://doi.org/10.1007/BFb0091539 |access-date=12 March 2021 |language=English}}&amp;lt;/ref&amp;gt; running on a {{math|&amp;#039;&amp;#039;b&amp;#039;&amp;#039;}}-bit number {{math|&amp;#039;&amp;#039;n&amp;#039;&amp;#039;}} in time:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;There are published algorithms that are faster than {{math|O((1 + &amp;#039;&amp;#039;ε&amp;#039;&amp;#039;)&amp;lt;sup&amp;gt;&amp;#039;&amp;#039;b&amp;#039;&amp;#039;&amp;lt;/sup&amp;gt;)}} for all positive {{math|&amp;#039;&amp;#039;ε&amp;#039;&amp;#039;}}, that is, [[Time complexity#Sub-exponential time|sub-exponential]].  {{As of|2022}}, the algorithm with best theoretical asymptotic running time is the [[general number field sieve]] (GNFS), first published in 1993,&amp;lt;ref&amp;gt;{{cite book |last1=Buhler |first1=J. P. |last2=Lenstra |first2=H. W. Jr. |last3=Pomerance |first3=Carl |chapter=Factoring integers with the number field sieve |title=The development of the number field sieve |date=1993 |publisher=Springer |isbn=978-3-540-57013-4 |pages=50–94 |doi=10.1007/BFb0091539 |hdl=1887/2149 |series=Lecture Notes in Mathematics |volume=1554 |url=https://doi.org/10.1007/BFb0091539 |access-date=12 March 2021 |language=English}}&amp;lt;/ref&amp;gt; running on a {{math|&amp;#039;&amp;#039;b&amp;#039;&amp;#039;}}-bit number {{math|&amp;#039;&amp;#039;n&amp;#039;&amp;#039;}} in time:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l168&quot;&gt;Line 168:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 168:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== See also ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== See also ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Aurifeuillean factorization]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Aurifeuillean factorization]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/del&gt;Bach&#039;s algorithm&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]] for generating random numbers with their factorizations&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{anl|&lt;/ins&gt;Bach&#039;s algorithm&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Canonical representation of a positive integer]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Canonical representation of a positive integer]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Factorization]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Factorization]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/del&gt;Multiplicative partition&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{anl|&lt;/ins&gt;Multiplicative partition&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[p-adic valuation|{{mvar|p}}-adic valuation]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[p-adic valuation|{{mvar|p}}-adic valuation]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/del&gt;Integer partition&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]] – a way of writing a number as a sum of positive integers.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{anl|&lt;/ins&gt;Integer partition&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Notes ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Notes ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l190&quot;&gt;Line 190:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 190:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== External links ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== External links ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;http&lt;/del&gt;://sourceforge.net/projects/msieve/ msieve] – SIQS and NFS – has helped complete some of the largest public factorizations known&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;https&lt;/ins&gt;://sourceforge.net/projects/msieve/ msieve] – SIQS and NFS – has helped complete some of the largest public factorizations known&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Richard P. Brent, &amp;quot;Recent Progress and Prospects for Integer Factorisation Algorithms&amp;quot;, &amp;#039;&amp;#039;Computing and Combinatorics&amp;quot;&amp;#039;&amp;#039;, 2000, pp.&amp;amp;nbsp;3–22. [http://citeseer.ist.psu.edu/327036.html download]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Richard P. Brent, &amp;quot;Recent Progress and Prospects for Integer Factorisation Algorithms&amp;quot;, &amp;#039;&amp;#039;Computing and Combinatorics&amp;quot;&amp;#039;&amp;#039;, 2000, pp.&amp;amp;nbsp;3–22. [http://citeseer.ist.psu.edu/327036.html download]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Manindra Agrawal]], Neeraj Kayal, Nitin Saxena, &amp;quot;PRIMES is in P.&amp;quot; Annals of Mathematics 160(2): 781–793 (2004). [http://www.cse.iitk.ac.in/users/manindra/algebra/primality_v6.pdf August 2005 version PDF]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Manindra Agrawal]], Neeraj Kayal, Nitin Saxena, &amp;quot;PRIMES is in P.&amp;quot; Annals of Mathematics 160(2): 781–793 (2004). [http://www.cse.iitk.ac.in/users/manindra/algebra/primality_v6.pdf August 2005 version PDF]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>imported&gt;Tassedethe</name></author>
	</entry>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Integer_factorization&amp;diff=622306&amp;oldid=prev</id>
		<title>imported&gt;Jacobolus: url duplicates doi</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Integer_factorization&amp;diff=622306&amp;oldid=prev"/>
		<updated>2025-06-19T21:02:58Z</updated>

		<summary type="html">&lt;p&gt;url duplicates doi&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Previous revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:02, 19 June 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l7&quot;&gt;Line 7:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 7:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To factorize a small integer {{mvar|n}} using mental or pen-and-paper arithmetic, the simplest method is [[trial division]]: checking if the number is divisible by prime numbers {{math|2}}, {{math|3}}, {{math|5}}, and so on, up to the [[square root]] of {{mvar|n}}. For larger numbers, especially when using a computer, various more sophisticated factorization algorithms are more efficient. A prime factorization algorithm typically involves [[primality test|testing whether each factor is prime]] each time a factor is found.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To factorize a small integer {{mvar|n}} using mental or pen-and-paper arithmetic, the simplest method is [[trial division]]: checking if the number is divisible by prime numbers {{math|2}}, {{math|3}}, {{math|5}}, and so on, up to the [[square root]] of {{mvar|n}}. For larger numbers, especially when using a computer, various more sophisticated factorization algorithms are more efficient. A prime factorization algorithm typically involves [[primality test|testing whether each factor is prime]] each time a factor is found.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;When the numbers are sufficiently large, no efficient non-[[quantum computer|quantum]] integer factorization [[algorithm]] is known. However, it has not been proven that such an algorithm does not exist. The presumed [[Computational hardness assumption|difficulty]] of this problem is important for the algorithms used in [[cryptography]] such as [[RSA (cryptosystem)|RSA public-key encryption]] and the [[Digital Signature Algorithm|RSA digital signature]].&amp;lt;ref&amp;gt;{{Citation |last=Lenstra |first=Arjen K. |title=Integer Factoring |date=2011 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|url=http://link.springer.com/10.1007/978-1-4419-5906-5_455 &lt;/del&gt;|encyclopedia=Encyclopedia of Cryptography and Security |pages=611–618 |editor-last=van Tilborg |editor-first=Henk C. A. |place=Boston&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, MA &lt;/del&gt;|publisher=Springer &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;US |language=en &lt;/del&gt;|doi=10.1007/978-1-4419-5906-5_455 |isbn=978-1-4419-5905-8 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|access-date=2022-06-22 &lt;/del&gt;|editor2-last=Jajodia |editor2-first=Sushil}}&amp;lt;/ref&amp;gt; Many areas of &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/del&gt;mathematics&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]] &lt;/del&gt;and [[computer science]] have been brought to bear on this problem, including [[elliptic curve]]s, [[algebraic number theory]], and quantum computing.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;When the numbers are sufficiently large, no efficient non-[[quantum computer|quantum]] integer factorization [[algorithm]] is known. However, it has not been proven that such an algorithm does not exist. The presumed [[Computational hardness assumption|difficulty]] of this problem is important for the algorithms used in [[cryptography]] such as [[RSA (cryptosystem)|RSA public-key encryption]] and the [[Digital Signature Algorithm|RSA digital signature]].&amp;lt;ref&amp;gt;{{Citation |last=Lenstra |first=Arjen K. |title=Integer Factoring |date=2011 |encyclopedia=Encyclopedia of Cryptography and Security |pages=611–618 |editor-last=van Tilborg |editor-first=Henk C. A. |place=Boston |publisher=Springer |doi=10.1007/978-1-4419-5906-5_455 |isbn=978-1-4419-5905-8 |editor2-last=Jajodia |editor2-first=Sushil }}&amp;lt;/ref&amp;gt; Many areas of mathematics and [[computer science]] have been brought to bear on this problem, including [[elliptic curve]]s, [[algebraic number theory]], and quantum computing.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Not all numbers of a given length are equally hard to factor. The hardest instances of these problems (for currently known techniques) are [[semiprime]]s, the product of two prime numbers. When they are both large, for instance more than two thousand [[bit]]s long, randomly chosen, and about the same size (but not too close, for example, to avoid efficient factorization by [[Fermat&amp;#039;s factorization method]]), even the fastest prime factorization algorithms on the fastest classical computers can take enough time to make the search impractical; that is, as the number of digits of the integer being factored increases, the number of operations required to perform the factorization on any classical computer increases drastically.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Not all numbers of a given length are equally hard to factor. The hardest instances of these problems (for currently known techniques) are [[semiprime]]s, the product of two prime numbers. When they are both large, for instance more than two thousand [[bit]]s long, randomly chosen, and about the same size (but not too close, for example, to avoid efficient factorization by [[Fermat&amp;#039;s factorization method]]), even the fastest prime factorization algorithms on the fastest classical computers can take enough time to make the search impractical; that is, as the number of digits of the integer being factored increases, the number of operations required to perform the factorization on any classical computer increases drastically.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>imported&gt;Jacobolus</name></author>
	</entry>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Integer_factorization&amp;diff=9951&amp;oldid=prev</id>
		<title>imported&gt;Kencf0618: WP:DASH</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Integer_factorization&amp;diff=9951&amp;oldid=prev"/>
		<updated>2025-04-19T11:39:47Z</updated>

		<summary type="html">&lt;p&gt;WP:DASH&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Short description|Decomposition of a number into a product}}&lt;br /&gt;
{{Redirect|Prime decomposition|the prime decomposition theorem for 3-manifolds|Prime decomposition of 3-manifolds}}&lt;br /&gt;
{{unsolved|computer science|Can integer factorization be solved in polynomial time on a classical computer?}}&lt;br /&gt;
&lt;br /&gt;
In [[mathematics]], &amp;#039;&amp;#039;&amp;#039;integer factorization&amp;#039;&amp;#039;&amp;#039; is the decomposition of a [[positive integer]] into a [[Product (mathematics)|product]] of integers. Every positive integer greater than 1 is either the product of two or more integer [[divisor|factors]] greater than 1, in which case it is a [[composite number]], or it is not, in which case it is a [[prime number]]. For example, {{math|15}} is a composite number because {{math|1=15 = 3&amp;amp;thinsp;·&amp;amp;thinsp;5}}, but {{math|7}} is a prime number because it cannot be decomposed in this way. If one of the factors is composite, it can in turn be written as a product of smaller factors, for example {{math|1=60 = 3&amp;amp;thinsp;·&amp;amp;thinsp;20 = 3&amp;amp;thinsp;·&amp;amp;thinsp;(5&amp;amp;thinsp;·&amp;amp;thinsp;4)}}. Continuing this process until every factor is prime is called &amp;#039;&amp;#039;&amp;#039;prime factorization&amp;#039;&amp;#039;&amp;#039;; the result is always unique up to the order of the factors by the [[prime factorization theorem]].&lt;br /&gt;
&lt;br /&gt;
To factorize a small integer {{mvar|n}} using mental or pen-and-paper arithmetic, the simplest method is [[trial division]]: checking if the number is divisible by prime numbers {{math|2}}, {{math|3}}, {{math|5}}, and so on, up to the [[square root]] of {{mvar|n}}. For larger numbers, especially when using a computer, various more sophisticated factorization algorithms are more efficient. A prime factorization algorithm typically involves [[primality test|testing whether each factor is prime]] each time a factor is found.&lt;br /&gt;
&lt;br /&gt;
When the numbers are sufficiently large, no efficient non-[[quantum computer|quantum]] integer factorization [[algorithm]] is known. However, it has not been proven that such an algorithm does not exist. The presumed [[Computational hardness assumption|difficulty]] of this problem is important for the algorithms used in [[cryptography]] such as [[RSA (cryptosystem)|RSA public-key encryption]] and the [[Digital Signature Algorithm|RSA digital signature]].&amp;lt;ref&amp;gt;{{Citation |last=Lenstra |first=Arjen K. |title=Integer Factoring |date=2011 |url=http://link.springer.com/10.1007/978-1-4419-5906-5_455 |encyclopedia=Encyclopedia of Cryptography and Security |pages=611–618 |editor-last=van Tilborg |editor-first=Henk C. A. |place=Boston, MA |publisher=Springer US |language=en |doi=10.1007/978-1-4419-5906-5_455 |isbn=978-1-4419-5905-8 |access-date=2022-06-22 |editor2-last=Jajodia |editor2-first=Sushil}}&amp;lt;/ref&amp;gt; Many areas of [[mathematics]] and [[computer science]] have been brought to bear on this problem, including [[elliptic curve]]s, [[algebraic number theory]], and quantum computing.&lt;br /&gt;
&lt;br /&gt;
Not all numbers of a given length are equally hard to factor. The hardest instances of these problems (for currently known techniques) are [[semiprime]]s, the product of two prime numbers. When they are both large, for instance more than two thousand [[bit]]s long, randomly chosen, and about the same size (but not too close, for example, to avoid efficient factorization by [[Fermat&amp;#039;s factorization method]]), even the fastest prime factorization algorithms on the fastest classical computers can take enough time to make the search impractical; that is, as the number of digits of the integer being factored increases, the number of operations required to perform the factorization on any classical computer increases drastically.&lt;br /&gt;
&lt;br /&gt;
Many cryptographic protocols are based on the presumed difficulty of factoring large composite integers or a related problem {{Ndash}}for example, the [[RSA problem]]. An algorithm that efficiently factors an arbitrary integer would render [[RSA (algorithm)|RSA]]-based [[public-key]] cryptography insecure.&lt;br /&gt;
&lt;br /&gt;
== Prime decomposition ==&lt;br /&gt;
[[Image:PrimeDecompositionExample.svg|right|thumb|Prime decomposition of {{math|&amp;#039;&amp;#039;n&amp;#039;&amp;#039; {{=}} 864}} as {{math|2&amp;lt;sup&amp;gt;5&amp;lt;/sup&amp;gt; × 3&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;}}]]&lt;br /&gt;
By the [[fundamental theorem of arithmetic]], every positive integer has a unique [[prime factor]]ization. (By convention, 1 is the [[empty product]].) [[Primality test|Testing]] whether the integer is prime can be done in [[polynomial time]], for example, by the [[AKS primality test]]. If composite, however, the polynomial time tests give no insight into how to obtain the factors.&lt;br /&gt;
&lt;br /&gt;
Given a general algorithm for integer factorization, any integer can be factored into its constituent [[prime factor]]s by repeated application of this algorithm. The situation is more complicated with special-purpose factorization algorithms, whose benefits may not be realized as well or even at all with the factors produced during decomposition. For example, if {{math|1=&amp;#039;&amp;#039;n&amp;#039;&amp;#039; = 171 × &amp;#039;&amp;#039;p&amp;#039;&amp;#039; × &amp;#039;&amp;#039;q&amp;#039;&amp;#039;}} where {{math|&amp;#039;&amp;#039;p&amp;#039;&amp;#039; &amp;lt; &amp;#039;&amp;#039;q&amp;#039;&amp;#039;}} are very large primes, [[trial division]] will quickly produce the factors 3 and 19 but will take {{math|&amp;#039;&amp;#039;p&amp;#039;&amp;#039;}} divisions to find the next factor. As a contrasting example, if {{math|&amp;#039;&amp;#039;n&amp;#039;&amp;#039;}} is the product of the primes {{math|13729}}, {{math|1372933}}, and {{math|18848997161}}, where {{math|1=13729 × 1372933 = 18848997157}}, Fermat&amp;#039;s factorization method will begin with {{math|⌈{{sqrt|&amp;#039;&amp;#039;n&amp;#039;&amp;#039;}}⌉ {{=}} 18848997159}} which immediately yields {{math|&amp;#039;&amp;#039;b&amp;#039;&amp;#039; {{=}} {{sqrt|&amp;#039;&amp;#039;a&amp;#039;&amp;#039;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; − &amp;#039;&amp;#039;n&amp;#039;&amp;#039;}} {{=}} {{sqrt|4}} {{=}} 2}} and hence the factors {{math|1=&amp;#039;&amp;#039;a&amp;#039;&amp;#039; − &amp;#039;&amp;#039;b&amp;#039;&amp;#039; = 18848997157}} and {{math|1=&amp;#039;&amp;#039;a&amp;#039;&amp;#039; + &amp;#039;&amp;#039;b&amp;#039;&amp;#039; = 18848997161}}. While these are easily recognized as composite and prime respectively, Fermat&amp;#039;s method will take much longer to factor the composite number because the starting value of {{math|⌈{{sqrt|18848997157}}⌉ {{=}} 137292}} for {{math|&amp;#039;&amp;#039;a&amp;#039;&amp;#039;}} is a factor of 10 from {{math|1372933}}.&lt;br /&gt;
&lt;br /&gt;
== Current state of the art ==&lt;br /&gt;
{{See also|Integer factorization records}}&lt;br /&gt;
&lt;br /&gt;
Among the {{math|&amp;#039;&amp;#039;b&amp;#039;&amp;#039;}}-bit numbers, the most difficult to factor in practice using existing algorithms are those [[semiprimes]] whose factors are of similar size. For this reason, these are the integers used in cryptographic applications.&lt;br /&gt;
&lt;br /&gt;
In 2019, a 240-digit (795-bit) number ([[RSA-240]]) was factored by a team of researchers including [[Paul Zimmermann (mathematician)|Paul Zimmermann]], utilizing approximately 900 core-years of computing power.&amp;lt;ref&amp;gt;{{cite web| url = https://lists.gforge.inria.fr/pipermail/cado-nfs-discuss/2019-December/001139.html| url-status = dead| archive-url = https://web.archive.org/web/20191202190004/https://lists.gforge.inria.fr/pipermail/cado-nfs-discuss/2019-December/001139.html| archive-date = 2019-12-02| title = [Cado-nfs-discuss] 795-bit factoring and discrete logarithms}}&amp;lt;/ref&amp;gt; These researchers estimated that a 1024-bit RSA modulus would take about 500 times as long.&amp;lt;ref name=rsa768&amp;gt;{{cite conference&lt;br /&gt;
 | last1 = Kleinjung | first1 = Thorsten&lt;br /&gt;
 | last2 = Aoki | first2 = Kazumaro&lt;br /&gt;
 | last3 = Franke | first3 = Jens&lt;br /&gt;
 | last4 = Lenstra | first4 = Arjen K.&lt;br /&gt;
 | last5 = Thomé | first5 = Emmanuel&lt;br /&gt;
 | last6 = Bos | first6 = Joppe W.&lt;br /&gt;
 | last7 = Gaudry | first7 = Pierrick&lt;br /&gt;
 | last8 = Kruppa | first8 = Alexander&lt;br /&gt;
 | last9 = Montgomery | first9 = Peter L.&lt;br /&gt;
 | last10 = Osvik | first10 = Dag Arne&lt;br /&gt;
 | last11 = te Riele | first11 = Herman J. J.&lt;br /&gt;
 | last12 = Timofeev | first12 = Andrey&lt;br /&gt;
 | last13 = Zimmermann | first13 = Paul&lt;br /&gt;
 | editor-last = Rabin | editor-first = Tal&lt;br /&gt;
 | contribution = Factorization of a 768-Bit RSA Modulus&lt;br /&gt;
 | contribution-url = https://eprint.iacr.org/2010/006.pdf&lt;br /&gt;
 | doi = 10.1007/978-3-642-14623-7_18&lt;br /&gt;
 | pages = 333–350&lt;br /&gt;
 | publisher = Springer&lt;br /&gt;
 | series = Lecture Notes in Computer Science&lt;br /&gt;
 | title = Advances in Cryptology - CRYPTO 2010, 30th Annual Cryptology Conference, Santa Barbara, CA, USA, August 15-19, 2010. Proceedings&lt;br /&gt;
 | volume = 6223&lt;br /&gt;
 | year = 2010| isbn = 978-3-642-14622-0&lt;br /&gt;
 }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The largest such semiprime yet factored was [[RSA numbers#RSA-250|RSA-250]], an 829-bit number with 250 decimal digits, in February 2020. The total computation time was roughly 2700 core-years of computing using Intel [[Skylake (microarchitecture)#Xeon Gold (quad processor)|Xeon Gold]] 6130 at 2.1&amp;amp;nbsp;GHz. Like all recent factorization records, this factorization was completed with a highly optimized implementation of the [[general number field sieve]] run on hundreds of machines.&lt;br /&gt;
&lt;br /&gt;
=== Time complexity ===&lt;br /&gt;
&lt;br /&gt;
No [[algorithm]] has been published that can factor all integers in [[polynomial time]], that is, that can factor a {{math|&amp;#039;&amp;#039;b&amp;#039;&amp;#039;}}-bit number {{math|&amp;#039;&amp;#039;n&amp;#039;&amp;#039;}} in time {{math|[[Big O notation|O]](&amp;#039;&amp;#039;b&amp;#039;&amp;#039;&amp;lt;sup&amp;gt;&amp;#039;&amp;#039;k&amp;#039;&amp;#039;&amp;lt;/sup&amp;gt;)}} for some constant {{math|&amp;#039;&amp;#039;k&amp;#039;&amp;#039;}}. Neither the existence nor non-existence of such algorithms has been proved, but it is generally suspected that they do not exist.&amp;lt;ref&amp;gt;{{citation |last=Krantz |first=Steven G. |author-link=Steven G. Krantz |doi=10.1007/978-0-387-48744-1 |isbn=978-0-387-48908-7 |location=New York |mr=2789493 |page=203 |publisher=Springer |title=The Proof is in the Pudding: The Changing Nature of Mathematical Proof |url=https://books.google.com/books?id=mMZBtxVZiQoC&amp;amp;pg=PA203 |year=2011}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{citation |last1=Arora |first1=Sanjeev |author1-link=Sanjeev Arora |last2=Barak |first2=Boaz |doi=10.1017/CBO9780511804090 |isbn=978-0-521-42426-4 |location=Cambridge |mr=2500087 |page=230 |publisher=Cambridge University Press |title=Computational complexity |url=https://books.google.com/books?id=nGvI7cOuOOQC&amp;amp;pg=PA230 |year=2009|s2cid=215746906 }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are published algorithms that are faster than {{math|O((1 + &amp;#039;&amp;#039;ε&amp;#039;&amp;#039;)&amp;lt;sup&amp;gt;&amp;#039;&amp;#039;b&amp;#039;&amp;#039;&amp;lt;/sup&amp;gt;)}} for all positive {{math|&amp;#039;&amp;#039;ε&amp;#039;&amp;#039;}}, that is, [[Time complexity#Sub-exponential time|sub-exponential]].  {{As of|2022}}, the algorithm with best theoretical asymptotic running time is the [[general number field sieve]] (GNFS), first published in 1993,&amp;lt;ref&amp;gt;{{cite book |last1=Buhler |first1=J. P. |last2=Lenstra |first2=H. W. Jr. |last3=Pomerance |first3=Carl |chapter=Factoring integers with the number field sieve |title=The development of the number field sieve |date=1993 |publisher=Springer |isbn=978-3-540-57013-4 |pages=50–94 |doi=10.1007/BFb0091539 |hdl=1887/2149 |series=Lecture Notes in Mathematics |volume=1554 |url=https://doi.org/10.1007/BFb0091539 |access-date=12 March 2021 |language=English}}&amp;lt;/ref&amp;gt; running on a {{math|&amp;#039;&amp;#039;b&amp;#039;&amp;#039;}}-bit number {{math|&amp;#039;&amp;#039;n&amp;#039;&amp;#039;}} in time:&lt;br /&gt;
: &amp;lt;math&amp;gt;\exp\left( \left(\left(\tfrac83\right)^\frac23 + o(1)\right)\left(\log n\right)^\frac13\left(\log \log n\right)^\frac23\right).&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For current computers, GNFS is the best published algorithm for large {{math|&amp;#039;&amp;#039;n&amp;#039;&amp;#039;}} (more than about 400 bits). For a [[Quantum computing|quantum computer]], however, [[Peter Shor]] discovered an algorithm in 1994 that solves it in polynomial time. [[Shor&amp;#039;s algorithm]] takes only {{math|O(&amp;#039;&amp;#039;b&amp;#039;&amp;#039;&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;)}} time and {{math|O(&amp;#039;&amp;#039;b&amp;#039;&amp;#039;)}} space on {{math|&amp;#039;&amp;#039;b&amp;#039;&amp;#039;}}-bit number inputs. In 2001, Shor&amp;#039;s algorithm was implemented for the first time, by using [[Nuclear magnetic resonance|NMR]] techniques on molecules that provide seven qubits.&amp;lt;ref&amp;gt;&lt;br /&gt;
{{cite journal&lt;br /&gt;
 | doi = 10.1038/414883a&lt;br /&gt;
 | title = Experimental realization of Shor&amp;#039;s quantum factoring algorithm using nuclear magnetic resonance&lt;br /&gt;
 | journal = [[Nature (journal)|Nature]]&lt;br /&gt;
 | volume = 414&lt;br /&gt;
 | pages = 883–887&lt;br /&gt;
 | year = 2001&lt;br /&gt;
 | last = Vandersypen | first=Lieven M. K. | issue = 6866&lt;br /&gt;
 | display-authors=etal| arxiv = quant-ph/0112176&lt;br /&gt;
 | pmid = 11780055&lt;br /&gt;
 | bibcode = 2001Natur.414..883V&lt;br /&gt;
 | s2cid = 4400832&lt;br /&gt;
}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order to talk about [[complexity class|complexity classes]] such as P, NP, and co-NP, the problem has to be stated as a [[decision problem]].&lt;br /&gt;
&lt;br /&gt;
{{Math theorem |For every natural numbers &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;, does {{math|&amp;#039;&amp;#039;n&amp;#039;&amp;#039;}} have a factor smaller than {{math|&amp;#039;&amp;#039;k&amp;#039;&amp;#039;}} besides 1? |name=Decision problem |note=Integer factorization }}&lt;br /&gt;
&lt;br /&gt;
It is known to be in both [[NP (complexity)|NP]] and [[co-NP]], meaning that both &amp;quot;yes&amp;quot; and &amp;quot;no&amp;quot; answers can be verified in polynomial time. An answer of &amp;quot;yes&amp;quot; can be certified by exhibiting a factorization {{math|1=&amp;#039;&amp;#039;n&amp;#039;&amp;#039; = &amp;#039;&amp;#039;d&amp;#039;&amp;#039;({{sfrac|&amp;#039;&amp;#039;n&amp;#039;&amp;#039;|&amp;#039;&amp;#039;d&amp;#039;&amp;#039;}})}} with {{math|&amp;#039;&amp;#039;d&amp;#039;&amp;#039; ≤ &amp;#039;&amp;#039;k&amp;#039;&amp;#039;}}. An answer of &amp;quot;no&amp;quot; can be certified by exhibiting the factorization of {{math|&amp;#039;&amp;#039;n&amp;#039;&amp;#039;}} into distinct primes, all larger than {{math|&amp;#039;&amp;#039;k&amp;#039;&amp;#039;}}; one can verify their primality using the [[AKS primality test]], and then multiply them to obtain {{math|&amp;#039;&amp;#039;n&amp;#039;&amp;#039;}}. The [[fundamental theorem of arithmetic]] guarantees that there is only one possible string of increasing primes that will be accepted, which shows that the problem is in both [[UP (complexity)|UP]] and co-UP.&amp;lt;ref&amp;gt;&lt;br /&gt;
{{cite web&lt;br /&gt;
 | author = Lance Fortnow&lt;br /&gt;
 | title = Computational Complexity Blog: Complexity Class of the Week: Factoring&lt;br /&gt;
 | date = 2002-09-13&lt;br /&gt;
 | url = http://weblog.fortnow.com/2002/09/complexity-class-of-week-factoring.html&lt;br /&gt;
}}&amp;lt;/ref&amp;gt; It is known to be in [[BQP]] because of Shor&amp;#039;s algorithm.&lt;br /&gt;
&lt;br /&gt;
The problem is suspected to be outside all three of the complexity classes P, NP-complete,&amp;lt;ref&amp;gt;{{citation |last1=Goldreich |first1=Oded |author1-link=Oded Goldreich |last2=Wigderson |first2=Avi |author2-link=Avi Wigderson |editor1-last=Gowers |editor1-first=Timothy |editor1-link=Timothy Gowers |editor2-last=Barrow-Green |editor2-first=June |editor2-link=June Barrow-Green|editor3-last=Leader |editor3-first=Imre |editor3-link=Imre Leader |contribution=IV.20 Computational Complexity |isbn=978-0-691-11880-2 |location=Princeton, New Jersey |mr=2467561 |pages=575–604 |publisher=Princeton University Press |title=The Princeton Companion to Mathematics |year=2008}}. See in particular [https://books.google.com/books?id=ZOfUsvemJDMC&amp;amp;pg=PA583 p.&amp;amp;nbsp;583].&amp;lt;/ref&amp;gt; and [[co-NP-complete]].&lt;br /&gt;
It is therefore a candidate for the [[NP-intermediate]] complexity class.&lt;br /&gt;
&lt;br /&gt;
In contrast, the decision problem &amp;quot;Is {{math|&amp;#039;&amp;#039;n&amp;#039;&amp;#039;}} a composite number?&amp;quot; (or equivalently: &amp;quot;Is {{math|&amp;#039;&amp;#039;n&amp;#039;&amp;#039;}} a prime number?&amp;quot;) appears to be much easier than the problem of specifying factors of {{math|&amp;#039;&amp;#039;n&amp;#039;&amp;#039;}}. The composite/prime problem can be solved in polynomial time (in the number {{math|&amp;#039;&amp;#039;b&amp;#039;&amp;#039;}} of digits of {{math|&amp;#039;&amp;#039;n&amp;#039;&amp;#039;}}) with the [[AKS primality test]]. In addition, there are several [[randomized algorithm|probabilistic algorithm]]s that can test primality very quickly in practice if one is willing to accept a vanishingly small possibility of error. The ease of [[primality test]]ing is a crucial part of the [[RSA (algorithm)|RSA]] algorithm, as it is necessary to find large prime numbers to start with.&lt;br /&gt;
&lt;br /&gt;
== Factoring algorithms &amp;lt;!-- This section is linked from [[Factorization]] --&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
=== Special-purpose ===&lt;br /&gt;
A special-purpose factoring algorithm&amp;#039;s running time depends on the properties of the number to be factored or on one of its unknown factors: size, special form, etc. The parameters which determine the running time vary among algorithms.&lt;br /&gt;
&lt;br /&gt;
An important subclass of special-purpose factoring algorithms is the &amp;#039;&amp;#039;Category 1&amp;#039;&amp;#039; or &amp;#039;&amp;#039;First Category&amp;#039;&amp;#039; algorithms, whose running time depends on the size of smallest prime factor. Given an integer of unknown form, these methods are usually applied before general-purpose methods to remove small factors.&amp;lt;ref name=&amp;quot;Bressoud and Wagon&amp;quot;&amp;gt;&lt;br /&gt;
{{cite book&lt;br /&gt;
 | author = [[David Bressoud]] and [[Stan Wagon]]&lt;br /&gt;
 | year = 2000&lt;br /&gt;
 | title = A Course in Computational Number Theory&lt;br /&gt;
 | publisher = Key College Publishing/Springer&lt;br /&gt;
 | isbn = 978-1-930190-10-8&lt;br /&gt;
 | pages = [https://archive.org/details/courseincomputat0000bres/page/168 168–69]&lt;br /&gt;
 | url-access = registration&lt;br /&gt;
 | url = https://archive.org/details/courseincomputat0000bres/page/168&lt;br /&gt;
}}&amp;lt;/ref&amp;gt; For example, naive [[trial division]] is a Category 1 algorithm.&lt;br /&gt;
&lt;br /&gt;
* [[Trial division]]&lt;br /&gt;
* [[Wheel factorization]]&lt;br /&gt;
* [[Pollard&amp;#039;s rho algorithm]], which has two common flavors to [[Cycle detection|identify group cycles]]: one by Floyd and one by Brent.&lt;br /&gt;
* [[Algebraic-group factorisation algorithms|Algebraic-group factorization algorithms]], among which are [[Pollard&amp;#039;s p − 1 algorithm|Pollard&amp;#039;s {{math|&amp;#039;&amp;#039;p&amp;#039;&amp;#039; − 1}} algorithm]], [[Williams&amp;#039; p + 1 algorithm|Williams&amp;#039; {{math|&amp;#039;&amp;#039;p&amp;#039;&amp;#039; + 1}} algorithm]], and [[Lenstra elliptic curve factorization]]&lt;br /&gt;
* [[Fermat&amp;#039;s factorization method]]&lt;br /&gt;
* [[Euler&amp;#039;s factorization method]]&lt;br /&gt;
* [[Special number field sieve]]&lt;br /&gt;
* [[Difference of two squares]]&lt;br /&gt;
&lt;br /&gt;
=== General-purpose ===&lt;br /&gt;
A general-purpose factoring algorithm, also known as a &amp;#039;&amp;#039;Category 2&amp;#039;&amp;#039;, &amp;#039;&amp;#039;Second Category&amp;#039;&amp;#039;, or [[Maurice Kraitchik|&amp;#039;&amp;#039;Kraitchik&amp;#039;&amp;#039;]] &amp;#039;&amp;#039;family&amp;#039;&amp;#039; algorithm,&amp;lt;ref name=&amp;quot;Bressoud and Wagon&amp;quot;/&amp;gt; has a running time which depends solely on the size of the integer to be factored. This is the type of algorithm used to factor [[RSA number]]s. Most general-purpose factoring algorithms are based on the [[congruence of squares]] method.&lt;br /&gt;
&lt;br /&gt;
* [[Dixon&amp;#039;s factorization method]]&lt;br /&gt;
* [[Continued fraction factorization]] (CFRAC)&lt;br /&gt;
* [[Quadratic sieve]]&lt;br /&gt;
* [[Rational sieve]]&lt;br /&gt;
* [[General number field sieve]]&lt;br /&gt;
* [[Shanks&amp;#039;s square forms factorization]] (SQUFOF)&lt;br /&gt;
&lt;br /&gt;
=== Other notable algorithms ===&lt;br /&gt;
* [[Shor&amp;#039;s algorithm]], for quantum computers&lt;br /&gt;
&lt;br /&gt;
== Heuristic running time ==&lt;br /&gt;
In number theory, there are many integer factoring algorithms that heuristically have expected [[Time complexity|running time]]&lt;br /&gt;
: &amp;lt;math&amp;gt;L_n\left[\tfrac12,1+o(1)\right]=e^{(1+o(1))\sqrt{(\log n)(\log \log n)}}&amp;lt;/math&amp;gt;&lt;br /&gt;
in [[Big O notation|little-o]] and [[L-notation]].&lt;br /&gt;
Some examples of those algorithms are the [[elliptic curve method]] and the [[quadratic sieve]].&lt;br /&gt;
Another such algorithm is the &amp;#039;&amp;#039;&amp;#039;class group relations method&amp;#039;&amp;#039;&amp;#039; proposed by Schnorr,&amp;lt;ref name=1982-schnorr&amp;gt;{{cite journal | last=Schnorr|first=Claus P.|year=1982|title=Refined analysis and improvements on some factoring algorithms|journal=Journal of Algorithms|volume=3|pages=101–127 | doi=10.1016/0196-6774(82)90012-8 | issue=2 | mr=0657269|url=http://www.dtic.mil/get-tr-doc/pdf?AD=ADA096348|archive-url=https://web.archive.org/web/20170924140543/http://www.dtic.mil/get-tr-doc/pdf?AD=ADA096348|url-status=dead|archive-date=September 24, 2017}}&amp;lt;/ref&amp;gt; Seysen,&amp;lt;ref name=1987-seysen&amp;gt;{{cite journal| last=Seysen|first=Martin|year=1987|title=A probabilistic factorization algorithm with quadratic forms of negative discriminant|journal=Mathematics of Computation|volume=48|pages=757–780| doi=10.1090/S0025-5718-1987-0878705-X| issue=178 | mr=0878705|doi-access=free}}&amp;lt;/ref&amp;gt; and Lenstra,&amp;lt;ref name=1988-lenstra &amp;gt;{{cite journal|last=Lenstra|first=Arjen K|year=1988|title=Fast and rigorous factorization under the generalized Riemann hypothesis|journal=Indagationes Mathematicae|volume=50|issue=4|pages=443–454|doi=10.1016/S1385-7258(88)80022-2|url=https://infoscience.epfl.ch/record/164491/files/nscan9.PDF }}&amp;lt;/ref&amp;gt; which they proved only assuming the unproved [[generalized Riemann hypothesis]].&lt;br /&gt;
&lt;br /&gt;
== Rigorous running time ==&lt;br /&gt;
The Schnorr–Seysen–Lenstra probabilistic algorithm has been rigorously proven by Lenstra and Pomerance&amp;lt;ref name=lenstra-pomerance/&amp;gt; to have expected running time {{math|&amp;#039;&amp;#039;L&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;&amp;#039;&amp;#039;[{{sfrac|1|2}}, 1+&amp;#039;&amp;#039;o&amp;#039;&amp;#039;(1)]}} by replacing the GRH assumption with the use of multipliers.&lt;br /&gt;
The algorithm uses the [[Ideal class group|class group]] of positive binary [[quadratic form]]s of [[Discriminant of a quadratic form|discriminant]] {{math|Δ}} denoted by {{math|&amp;#039;&amp;#039;G&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;Δ&amp;lt;/sub&amp;gt;}}.&lt;br /&gt;
{{math|&amp;#039;&amp;#039;G&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;Δ&amp;lt;/sub&amp;gt;}} is the set of triples of integers {{math|(&amp;#039;&amp;#039;a&amp;#039;&amp;#039;, &amp;#039;&amp;#039;b&amp;#039;&amp;#039;, &amp;#039;&amp;#039;c&amp;#039;&amp;#039;)}} in which those integers are relative prime.&lt;br /&gt;
&lt;br /&gt;
=== Schnorr–Seysen–Lenstra algorithm ===&lt;br /&gt;
Given an integer {{mvar|n}} that will be factored, where {{mvar|n}} is an odd positive integer greater than a certain constant. In this factoring algorithm the discriminant {{math|Δ}} is chosen as a multiple of {{mvar|n}}, {{math|1=Δ = −&amp;#039;&amp;#039;dn&amp;#039;&amp;#039;}}, where {{mvar|d}} is some positive multiplier. The algorithm expects that for one {{mvar|d}} there exist enough [[smooth number|smooth]] forms in {{math|&amp;#039;&amp;#039;G&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;Δ&amp;lt;/sub&amp;gt;}}. Lenstra and Pomerance show that the choice of {{mvar|d}} can be restricted to a small set to guarantee the smoothness result.&lt;br /&gt;
&lt;br /&gt;
Denote by {{math|&amp;#039;&amp;#039;P&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;Δ&amp;lt;/sub&amp;gt;}} the set of all primes {{mvar|q}} with [[Kronecker symbol]] {{math|{{pars|s=150%|{{sfrac|Δ|&amp;#039;&amp;#039;q&amp;#039;&amp;#039;}}}} {{=}} 1}}. By constructing a set of [[Generating set of a group|generators]] of {{math|&amp;#039;&amp;#039;G&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;Δ&amp;lt;/sub&amp;gt;}} and prime forms {{math|&amp;#039;&amp;#039;f&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;&amp;#039;&amp;#039;q&amp;#039;&amp;#039;&amp;lt;/sub&amp;gt;}} of {{math|&amp;#039;&amp;#039;G&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;Δ&amp;lt;/sub&amp;gt;}} with {{mvar|q}} in {{math|&amp;#039;&amp;#039;P&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;Δ&amp;lt;/sub&amp;gt;}} a sequence of relations between the set of generators and {{math|&amp;#039;&amp;#039;f&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;&amp;#039;&amp;#039;q&amp;#039;&amp;#039;&amp;lt;/sub&amp;gt;}} are produced.&lt;br /&gt;
The size of {{mvar|q}} can be bounded by {{math|&amp;#039;&amp;#039;c&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(log{{abs|Δ}})&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;}} for some constant {{math|&amp;#039;&amp;#039;c&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;}}.&lt;br /&gt;
&lt;br /&gt;
The relation that will be used is a relation between the product of powers that is equal to the [[group (mathematics)|neutral element]] of {{math|&amp;#039;&amp;#039;G&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;Δ&amp;lt;/sub&amp;gt;}}. These relations will be used to construct a so-called ambiguous form of {{math|&amp;#039;&amp;#039;G&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;Δ&amp;lt;/sub&amp;gt;}}, which is an element of {{math|&amp;#039;&amp;#039;G&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;Δ&amp;lt;/sub&amp;gt;}} of order dividing 2. By calculating the corresponding factorization of {{math|Δ}} and by taking a [[Greatest common divisor|gcd]], this ambiguous form provides the complete prime factorization of {{mvar|n}}. This algorithm has these main steps:&lt;br /&gt;
&lt;br /&gt;
Let {{mvar|n}} be the number to be factored.&lt;br /&gt;
{{ordered list&lt;br /&gt;
| Let {{math|Δ}} be a negative integer with {{math|1=Δ = −&amp;#039;&amp;#039;dn&amp;#039;&amp;#039;}}, where {{mvar|d}} is a multiplier and {{math|Δ}} is the negative discriminant of some quadratic form.&lt;br /&gt;
| Take the {{mvar|t}} first primes {{math|&amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; {{=}} 2, &amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; {{=}} 3, &amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; {{=}} 5, ..., &amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;&amp;#039;&amp;#039;t&amp;#039;&amp;#039;&amp;lt;/sub&amp;gt;}}, for some {{math|&amp;#039;&amp;#039;t&amp;#039;&amp;#039; ∈ &amp;#039;&amp;#039;&amp;#039;N&amp;#039;&amp;#039;&amp;#039;}}.&lt;br /&gt;
| Let {{math|&amp;#039;&amp;#039;f&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;&amp;#039;&amp;#039;q&amp;#039;&amp;#039;&amp;lt;/sub&amp;gt;}} be a random prime form of {{math|&amp;#039;&amp;#039;G&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;Δ&amp;lt;/sub&amp;gt;}} with {{math|{{pars|s=150%|{{sfrac|Δ|&amp;#039;&amp;#039;q&amp;#039;&amp;#039;}}}} {{=}} 1}}.&lt;br /&gt;
| Find a generating set {{mvar|X}} of {{math|&amp;#039;&amp;#039;G&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;Δ&amp;lt;/sub&amp;gt;}}.&lt;br /&gt;
| Collect a sequence of relations between set {{mvar|X}} and {{math|{{mset|&amp;#039;&amp;#039;f&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;&amp;#039;&amp;#039;q&amp;#039;&amp;#039;&amp;lt;/sub&amp;gt; : &amp;#039;&amp;#039;q&amp;#039;&amp;#039; ∈ &amp;#039;&amp;#039;P&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;Δ&amp;lt;/sub&amp;gt;}}}} satisfying:&lt;br /&gt;
: &amp;lt;math&amp;gt;\left(\prod_{x \in X_{}} x^{r(x)}\right).\left(\prod_{q \in P_\Delta} f^{t(q)}_{q}\right) = 1.&amp;lt;/math&amp;gt;&lt;br /&gt;
| Construct an ambiguous form {{math|(&amp;#039;&amp;#039;a&amp;#039;&amp;#039;, &amp;#039;&amp;#039;b&amp;#039;&amp;#039;, &amp;#039;&amp;#039;c&amp;#039;&amp;#039;)}} that is an element {{math|&amp;#039;&amp;#039;f&amp;#039;&amp;#039; ∈ &amp;#039;&amp;#039;G&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;Δ&amp;lt;/sub&amp;gt;}} of order dividing 2 to obtain a coprime factorization of the largest odd divisor of {{math|Δ}} in which {{math|1=Δ = −4&amp;#039;&amp;#039;ac&amp;#039;&amp;#039;}} or {{math|1=Δ = &amp;#039;&amp;#039;a&amp;#039;&amp;#039;(&amp;#039;&amp;#039;a&amp;#039;&amp;#039; − 4&amp;#039;&amp;#039;c&amp;#039;&amp;#039;)}} or {{math|1=Δ = (&amp;#039;&amp;#039;b&amp;#039;&amp;#039; − 2&amp;#039;&amp;#039;a&amp;#039;&amp;#039;)(&amp;#039;&amp;#039;b&amp;#039;&amp;#039; + 2&amp;#039;&amp;#039;a&amp;#039;&amp;#039;)}}.&lt;br /&gt;
| If the ambiguous form provides a factorization of {{mvar|n}} then stop, otherwise find another ambiguous form until the factorization of {{mvar|n}} is found. In order to prevent useless ambiguous forms from generating, build up the [[Sylow theorems|2-Sylow]] group {{math|Sll&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;(Δ)}} of {{math|&amp;#039;&amp;#039;G&amp;#039;&amp;#039;(Δ)}}.&lt;br /&gt;
}}&lt;br /&gt;
To obtain an algorithm for factoring any positive integer, it is necessary to add a few steps to this algorithm such as trial division, and the [[Adleman–Pomerance–Rumely primality test|Jacobi sum test]].&lt;br /&gt;
&lt;br /&gt;
=== Expected running time ===&lt;br /&gt;
The algorithm as stated is a [[probabilistic algorithm]] as it makes random choices. Its expected running time is at most {{math|&amp;#039;&amp;#039;L&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;&amp;#039;&amp;#039;[{{sfrac|1|2}}, 1+&amp;#039;&amp;#039;o&amp;#039;&amp;#039;(1)]}}.&amp;lt;ref name=lenstra-pomerance&amp;gt;{{cite journal | first1=H. W. |last1=Lenstra|first2=Carl|last2= Pomerance |date=July 1992 |title=A Rigorous Time Bound for Factoring Integers |journal=Journal of the American Mathematical Society |volume=5 |pages=483–516|url=https://www.ams.org/journals/jams/1992-05-03/S0894-0347-1992-1137100-0/S0894-0347-1992-1137100-0.pdf | doi=10.1090/S0894-0347-1992-1137100-0 | issue=3 | mr=1137100|doi-access=free }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Aurifeuillean factorization]]&lt;br /&gt;
* [[Bach&amp;#039;s algorithm]] for generating random numbers with their factorizations&lt;br /&gt;
* [[Canonical representation of a positive integer]]&lt;br /&gt;
* [[Factorization]]&lt;br /&gt;
* [[Multiplicative partition]]&lt;br /&gt;
* [[p-adic valuation|{{mvar|p}}-adic valuation]]&lt;br /&gt;
* [[Integer partition]] – a way of writing a number as a sum of positive integers.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
{{Reflist}}&amp;lt;!--added under references heading by script-assisted edit--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* {{cite book&lt;br /&gt;
|author = [[Richard Crandall]] and [[Carl Pomerance]]&lt;br /&gt;
| year = 2001&lt;br /&gt;
| title = Prime Numbers: A Computational Perspective&lt;br /&gt;
| publisher = Springer&lt;br /&gt;
| isbn = 0-387-94777-9}} Chapter 5: Exponential Factoring Algorithms, pp.&amp;amp;nbsp;191–226. Chapter 6: Subexponential Factoring Algorithms, pp.&amp;amp;nbsp;227–284. Section 7.4: Elliptic curve method, pp.&amp;amp;nbsp;301–313.&lt;br /&gt;
* [[Donald Knuth]]. &amp;#039;&amp;#039;[[The Art of Computer Programming]]&amp;#039;&amp;#039;, Volume 2: &amp;#039;&amp;#039;Seminumerical Algorithms&amp;#039;&amp;#039;, Third Edition. Addison-Wesley, 1997. {{ISBN|0-201-89684-2}}. Section 4.5.4: Factoring into Primes, pp.&amp;amp;nbsp;379–417.&lt;br /&gt;
* {{cite book | author =Samuel S. Wagstaff Jr. | title=The Joy of Factoring | publisher=American Mathematical Society | location=Providence, RI | year=2013 | isbn=978-1-4704-1048-3 |url=https://www.ams.org/bookpages/stml-68 |author-link=Samuel S. Wagstaff Jr. }}.&lt;br /&gt;
* {{Cite book |title=[[Hacker&amp;#039;s Delight]] |first=Henry S. Jr. |last=Warren |date=2013 |edition=2 |publisher=[[Addison Wesley]] - [[Pearson Education, Inc.]] |isbn=978-0-321-84268-8}}&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [http://sourceforge.net/projects/msieve/ msieve] – SIQS and NFS – has helped complete some of the largest public factorizations known&lt;br /&gt;
* Richard P. Brent, &amp;quot;Recent Progress and Prospects for Integer Factorisation Algorithms&amp;quot;, &amp;#039;&amp;#039;Computing and Combinatorics&amp;quot;&amp;#039;&amp;#039;, 2000, pp.&amp;amp;nbsp;3–22. [http://citeseer.ist.psu.edu/327036.html download]&lt;br /&gt;
* [[Manindra Agrawal]], Neeraj Kayal, Nitin Saxena, &amp;quot;PRIMES is in P.&amp;quot; Annals of Mathematics 160(2): 781–793 (2004). [http://www.cse.iitk.ac.in/users/manindra/algebra/primality_v6.pdf August 2005 version PDF]&lt;br /&gt;
* Eric W. Weisstein, [http://mathworld.wolfram.com/news/2005-11-08/rsa-640/ “RSA-640 Factored” &amp;#039;&amp;#039;MathWorld Headline News&amp;#039;&amp;#039;, November 8, 2005]&lt;br /&gt;
* [https://www.alpertron.com.ar/ECM.HTM Dario Alpern&amp;#039;s Integer factorization calculator] – A web app for factoring large integers&lt;br /&gt;
&lt;br /&gt;
{{Computational hardness assumptions}}&lt;br /&gt;
{{Number theoretic algorithms|state=collapsed}}&lt;br /&gt;
{{Divisor classes}}&lt;br /&gt;
{{Authority control}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Integer factorization algorithms| ]]&lt;br /&gt;
[[Category:Computational hardness assumptions]]&lt;br /&gt;
[[Category:Unsolved problems in computer science]]&lt;br /&gt;
[[Category:Factorization]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Kencf0618</name></author>
	</entry>
</feed>