<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://en.formulasearchengine.com/index.php?action=history&amp;feed=atom&amp;title=Kirkendall_effect</id>
	<title>Kirkendall effect - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://en.formulasearchengine.com/index.php?action=history&amp;feed=atom&amp;title=Kirkendall_effect"/>
	<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/index.php?title=Kirkendall_effect&amp;action=history"/>
	<updated>2026-04-18T19:59:30Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0-wmf.28</generator>
	<entry>
		<id>https://en.formulasearchengine.com/index.php?title=Kirkendall_effect&amp;diff=285104&amp;oldid=prev</id>
		<title>en&gt;Debouch: Undid revision 619378681 by AlonsoAlegre (talk)  &quot;short person jumping&quot; does not describe anything in the article</title>
		<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/index.php?title=Kirkendall_effect&amp;diff=285104&amp;oldid=prev"/>
		<updated>2014-10-30T02:53:09Z</updated>

		<summary type="html">&lt;p&gt;Undid revision 619378681 by &lt;a href=&quot;/wiki/Special:Contributions/AlonsoAlegre&quot; title=&quot;Special:Contributions/AlonsoAlegre&quot;&gt;AlonsoAlegre&lt;/a&gt; (&lt;a href=&quot;/index.php?title=User_talk:AlonsoAlegre&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User talk:AlonsoAlegre (page does not exist)&quot;&gt;talk&lt;/a&gt;)  &amp;quot;short person jumping&amp;quot; does not describe anything in the article&lt;/p&gt;
&lt;a href=&quot;https://en.formulasearchengine.com/index.php?title=Kirkendall_effect&amp;amp;diff=285104&amp;amp;oldid=1372&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>en&gt;Debouch</name></author>
	</entry>
	<entry>
		<id>https://en.formulasearchengine.com/index.php?title=Kirkendall_effect&amp;diff=1372&amp;oldid=prev</id>
		<title>en&gt;Rjwilmsi: Journal cites, added 1 DOI using AWB (9904)</title>
		<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/index.php?title=Kirkendall_effect&amp;diff=1372&amp;oldid=prev"/>
		<updated>2014-02-03T19:48:15Z</updated>

		<summary type="html">&lt;p&gt;Journal cites, added 1 DOI using &lt;a href=&quot;/index.php?title=Testwiki:AWB&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Testwiki:AWB (page does not exist)&quot;&gt;AWB&lt;/a&gt; (9904)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Shor&amp;#039;s algorithm&amp;#039;&amp;#039;&amp;#039;, named after mathematician [[Peter Shor]], is a [[quantum algorithm]] (an [[algorithm]] which runs on a [[quantum computer]]) for [[integer factorization]] formulated in 1994. Informally it solves the following problem: Given an integer &amp;#039;&amp;#039;N&amp;#039;&amp;#039;, find its [[prime factor]]s.&lt;br /&gt;
&lt;br /&gt;
On a quantum computer, to factor an integer &amp;#039;&amp;#039;N&amp;#039;&amp;#039;, Shor&amp;#039;s algorithm runs in [[polynomial time]] (the time taken is polynomial in log &amp;#039;&amp;#039;N&amp;#039;&amp;#039;, which is the size of the input).&amp;lt;ref&amp;gt;See also [[Pseudo-polynomial time]].&amp;lt;/ref&amp;gt; Specifically it takes time {{math|[[Big O notation|O]]((log &amp;#039;&amp;#039;N&amp;#039;&amp;#039;)&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;)}}, demonstrating that the integer factorization problem can be efficiently solved on a quantum computer and is thus in the [[complexity class]] &amp;#039;&amp;#039;&amp;#039;[[BQP]]&amp;#039;&amp;#039;&amp;#039;. This is substantially faster than the most efficient known classical factoring algorithm, the [[general number field sieve]], which works in [[sub-exponential time]] — about {{math|O(e&amp;lt;sup&amp;gt;1.9 (log N)&amp;lt;sup&amp;gt;1/3&amp;lt;/sup&amp;gt; (log log N)&amp;lt;sup&amp;gt;2/3&amp;lt;/sup&amp;gt;&amp;lt;/sup&amp;gt;)}}.&amp;lt;ref&amp;gt;[http://mathworld.wolfram.com/NumberFieldSieve.html MathWorld: Number Field Sieve]&amp;lt;/ref&amp;gt; The efficiency of Shor&amp;#039;s algorithm is due to the efficiency of the [[quantum Fourier transform]], and [[modular exponentiation]] by [[exponentiation by squaring|squarings]].&lt;br /&gt;
&lt;br /&gt;
If a quantum computer with a sufficient number of [[qubits]] could operate without succumbing to [[noise]] and other quantum interference phenomena, Shor&amp;#039;s algorithm could be used to break [[public-key cryptography]] schemes such as the widely used [[RSA (algorithm)|RSA]] scheme. RSA is based on the assumption that factoring large numbers is computationally infeasible. So far as is known, this assumption is valid for classical (non-quantum) computers; no classical algorithm is known that can factor in polynomial time. However, Shor&amp;#039;s algorithm shows that factoring is efficient on an ideal quantum computer, so it may be feasible to  defeat RSA by constructing a large quantum computer. It was also a powerful motivator for the design and construction of quantum computers and for the study of new quantum computer algorithms. It has also facilitated research on new cryptosystems that are secure from quantum computers, collectively called [[post-quantum cryptography]].&lt;br /&gt;
&lt;br /&gt;
In 2001, Shor&amp;#039;s algorithm was demonstrated by a group at IBM, who factored 15 into 3&amp;amp;nbsp;×&amp;amp;nbsp;5, using an [[Nuclear magnetic resonance (NMR) quantum computing|NMR implementation]] of a quantum computer with 7 [[qubits]].&amp;lt;ref name=&amp;quot;VSBYSC01&amp;quot;&amp;gt;{{Citation |last=Vandersypen |first=Lieven M. K. |last2=Steffen |first2=Matthias |last3=Breyta |first3=Gregory |last4=Yannoni |first4=Costantino S. |last5=Sherwood |first5=Mark H. |last6=Chuang |first6=Isaac L. |lastauthoramp=yes |year=2001 |title=Experimental realization of Shor&amp;#039;s quantum factoring algorithm using nuclear magnetic resonance |journal=[[Nature (journal)|Nature]] |volume=414 |issue=6866 |pages=883–887 |doi=10.1038/414883a |pmid=11780055 |arxiv = quant-ph/0112176 |bibcode = 2001Natur.414..883V |url=http://cryptome.org/shor-nature.pdf |format=PDF}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
However, some doubts have been raised as to whether IBM&amp;#039;s experiment was a true demonstration of quantum computation, since no [[quantum entanglement|entanglement]] was observed.&amp;lt;ref name=&amp;quot;BCJLPS99&amp;quot;&amp;gt;{{Citation |last=Braunstein |first=S. L. |last2=Caves |first2=C. M. |last3=Jozsa |first3=R. |last4=Linden |first4=N. |last5=Popescu |first5=S. |last6=Schack |first6=R. |lastauthoramp= |year=1999 |title=Separability of Very Noisy Mixed States and Implications for NMR Quantum Computing |journal=Phys. Rev. Lett |volume=83 |issue=5 |pages=1054–1057 |doi=10.1103/PhysRevLett.83.1054 |bibcode=1999PhRvL..83.1054B|arxiv = quant-ph/9811018 }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
Since IBM&amp;#039;s implementation, several other groups have implemented Shor&amp;#039;s algorithm using photonic qubits, emphasizing that entanglement was observed.&amp;lt;ref name=&amp;quot;LBYP07&amp;quot;&amp;gt;{{Citation |last=Lu |first=Chao-Yang |last2=Browne |first2=Daniel E. |last3=Yang |first3=Tao |last4=Pan |lastauthoramp=yes |year=2007 |title=Demonstration of a Compiled Version of Shor&amp;#039;s Quantum Factoring Algorithm Using Photonic Qubits |journal=[[Physical Review Letters]] |volume=99 |issue=25 |page=250504 |doi=10.1103/PhysRevLett.99.250504 |first4=Jian-Wei |bibcode=2007PhRvL..99y0504L|arxiv = 0705.1684 }}&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;LWLBJGW07&amp;quot;&amp;gt;{{Citation |last=Lanyon |first=B. P. |last2=Weinhold |first2=T. J. |last3=Langford |first3=N. K. |last4=Barbieri |first4=M. |last5=James |first5=D. F. V. |last6=Gilchrist |first6=A. |last7=White |first7=A. G. |lastauthoramp=yes |year=2007 |title=Experimental Demonstration of a Compiled Version of Shor&amp;#039;s Algorithm with Quantum Entanglement |journal=Physical Review Letters |volume=99 |issue=25 |page=250505 |doi=10.1103/PhysRevLett.99.250505 |bibcode=2007PhRvL..99y0505L|arxiv = 0705.1398 }}&amp;lt;/ref&amp;gt; In 2012, the factorization of 15 was repeated.&amp;lt;ref&amp;gt;http://arxiv.org/pdf/1202.5707v1.pdf - Computing prime factors with a Josephson phase qubit quantum processor&amp;lt;/ref&amp;gt; Also in 2012, the factorization of 21 was achieved, setting the record for the largest number factored with a quantum computer.&amp;lt;ref&amp;gt;{{cite journal|last=Martín-López|first=Enrique|coauthors=Enrique Martín-López,	     Anthony Laing,	     Thomas Lawson, Roberto Alvarez,	 Xiao-Qi Zhou &amp;amp; Jeremy L. O&amp;#039;Brien|title=Experimental realization of Shor&amp;#039;s quantum factoring algorithm using qubit recycling|journal=Nature Photonics|date=12 October 2012|url=http://www.nature.com/nphoton/journal/vaop/ncurrent/full/nphoton.2012.259.html|accessdate=October 23, 2012}}&amp;lt;/ref&amp;gt; In April 2012, the factorization of 143 was achieved. [http://phys.org/news/2012-04-largest-factored-quantum-algorithm.html]&lt;br /&gt;
&lt;br /&gt;
== Procedure ==&lt;br /&gt;
The problem we are trying to solve is: given an odd [[composite number]] &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;, find an integer &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt;, strictly between &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;, that divides &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;. We are interested in odd values of &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; because any even value of &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; trivially has the number &amp;lt;math&amp;gt;2&amp;lt;/math&amp;gt; as a prime factor. We can use a [[primality testing]] algorithm to make sure that &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; is indeed composite.&lt;br /&gt;
&lt;br /&gt;
Moreover, for the algorithm to work, we need &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; not to be the power of a prime. This can be tested by taking square, cubic, ..., &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;-roots of &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;, for &amp;lt;math&amp;gt;k \le \log_{2}(N)&amp;lt;/math&amp;gt;, and checking that none of these is an integer. (This actually excludes that &amp;lt;math&amp;gt;N = M^{k}&amp;lt;/math&amp;gt; for some integer &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;k &amp;gt; 1&amp;lt;/math&amp;gt;.)&lt;br /&gt;
&lt;br /&gt;
Since &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; is not a power of a prime, it is the product of two [[coprime]] numbers greater than &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;. As a consequence of the [[Chinese remainder theorem]], the number &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; has at least four distinct roots [[modular arithmetic|modulo]] &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;, two of them being &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt;. The aim of the algorithm is to find a square root &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; of one, other than &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt;; such a &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; will lead to a factorization of &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;, as in other [[integer factorization|factoring algorithms]] like the [[quadratic sieve]].&lt;br /&gt;
&lt;br /&gt;
In turn, finding such a &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; is reduced to finding an element &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; of even period with a certain additional property (as explained below, it is required that the condition of Step 6 of the classical part does not hold). The quantum algorithm is used for finding the period of randomly chosen elements &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, as order-finding is a hard problem on a classical computer.&lt;br /&gt;
&lt;br /&gt;
Shor&amp;#039;s algorithm consists of two parts:&lt;br /&gt;
&lt;br /&gt;
# A reduction, which can be done on a classical computer, of the factoring problem to the problem of [[Order (group theory)|order]]-finding.&lt;br /&gt;
# A quantum algorithm to solve the order-finding problem.&lt;br /&gt;
&lt;br /&gt;
=== Classical part ===&lt;br /&gt;
{{ordered list&lt;br /&gt;
| Pick a random number &amp;#039;&amp;#039;a&amp;#039;&amp;#039; &amp;lt; &amp;#039;&amp;#039;N&amp;#039;&amp;#039;.&lt;br /&gt;
| Compute [[greatest common divisor|gcd]](&amp;#039;&amp;#039;a&amp;#039;&amp;#039;, &amp;#039;&amp;#039;N&amp;#039;&amp;#039;). This may be done using the [[Euclidean algorithm]].&lt;br /&gt;
| If gcd(&amp;#039;&amp;#039;a&amp;#039;&amp;#039;, &amp;#039;&amp;#039;N&amp;#039;&amp;#039;) ≠ 1, then there is a [[nontrivial]] factor of &amp;#039;&amp;#039;N&amp;#039;&amp;#039;, so we are done.&lt;br /&gt;
| Otherwise, use the period-finding subroutine (below) to find &amp;#039;&amp;#039;r&amp;#039;&amp;#039;, the [[periodic function|period]] of the following function:&lt;br /&gt;
:&amp;lt;math&amp;gt;f(x) = a^x \bmod N,&amp;lt;/math&amp;gt;&lt;br /&gt;
i.e. the [[order (group theory)|order]] &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; of &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; in [[Multiplicative group of integers modulo n|&amp;lt;math&amp;gt;(\mathbb{Z}_N)^\times&amp;lt;/math&amp;gt;]], which is the smallest positive integer &amp;#039;&amp;#039;r&amp;#039;&amp;#039; for which &amp;lt;math&amp;gt;f(x+r) = f(x)&amp;lt;/math&amp;gt;, or &amp;lt;math&amp;gt;f(x+r) = a^{x+r} \bmod N = a^x \bmod N.&amp;lt;/math&amp;gt;&lt;br /&gt;
| If &amp;#039;&amp;#039;r&amp;#039;&amp;#039; is odd, go back to step 1.&lt;br /&gt;
| If &amp;#039;&amp;#039;a&amp;#039;&amp;#039; &amp;lt;sup&amp;gt;&amp;#039;&amp;#039;r&amp;#039;&amp;#039; /2&amp;lt;/sup&amp;gt; ≡ −1 ([[Modular arithmetic|mod]] &amp;#039;&amp;#039;N&amp;#039;&amp;#039;), go back to step 1.&lt;br /&gt;
| gcd(a&amp;lt;sup&amp;gt;&amp;#039;&amp;#039;r&amp;#039;&amp;#039;/2&amp;lt;/sup&amp;gt; ± 1, &amp;#039;&amp;#039;N&amp;#039;&amp;#039;) is a nontrivial factor of &amp;#039;&amp;#039;N&amp;#039;&amp;#039;. We are done.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
For example: &amp;lt;math&amp;gt;N = 15, a = 2, r = 4&amp;lt;/math&amp;gt;, gcd(4 ± 1, &amp;#039;&amp;#039;N&amp;#039;&amp;#039;).&lt;br /&gt;
&lt;br /&gt;
=== Quantum part: Period-finding subroutine ===&lt;br /&gt;
The quantum circuits used for this algorithm are custom designed for each choice of &amp;#039;&amp;#039;N&amp;#039;&amp;#039; and the random &amp;#039;&amp;#039;a&amp;#039;&amp;#039; used in &amp;#039;&amp;#039;f&amp;#039;&amp;#039;(&amp;#039;&amp;#039;x&amp;#039;&amp;#039;) = &amp;#039;&amp;#039;a&amp;#039;&amp;#039;&amp;lt;sup&amp;gt;&amp;#039;&amp;#039;x&amp;#039;&amp;#039;&amp;lt;/sup&amp;gt; [[Modulo operation|mod]] &amp;#039;&amp;#039;N&amp;#039;&amp;#039;. Given &amp;#039;&amp;#039;N&amp;#039;&amp;#039;, find &amp;#039;&amp;#039;Q&amp;#039;&amp;#039; = 2&amp;lt;sup&amp;gt;&amp;#039;&amp;#039;q&amp;#039;&amp;#039;&amp;lt;/sup&amp;gt; such that &amp;lt;math&amp;gt;N^2 \le Q &amp;lt; 2N^2&amp;lt;/math&amp;gt;, which implies &amp;lt;math&amp;gt;Q/r &amp;gt; N&amp;lt;/math&amp;gt;. The input and output [[qubit]] registers need to hold superpositions of values from 0 to &amp;#039;&amp;#039;Q&amp;#039;&amp;#039; − 1, and so have &amp;#039;&amp;#039;q&amp;#039;&amp;#039; qubits each. Using what might appear to be twice as many qubits as necessary guarantees that there are at least &amp;#039;&amp;#039;N&amp;#039;&amp;#039; different &amp;#039;&amp;#039;x&amp;#039;&amp;#039; which produce the same &amp;#039;&amp;#039;f&amp;#039;&amp;#039;(&amp;#039;&amp;#039;x&amp;#039;&amp;#039;), even as the period &amp;#039;&amp;#039;r&amp;#039;&amp;#039; approaches &amp;#039;&amp;#039;N&amp;#039;&amp;#039;/2.&lt;br /&gt;
&lt;br /&gt;
Proceed as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Initialize the registers to&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;Q^{-1/2} \sum_{x=0}^{Q-1} \left|x\right\rangle \left|0\right\rangle&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;#039;&amp;#039;x&amp;#039;&amp;#039; runs from 0 to &amp;#039;&amp;#039;Q&amp;#039;&amp;#039; − 1. This initial state is a superposition of &amp;#039;&amp;#039;Q&amp;#039;&amp;#039; states.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Construct &amp;#039;&amp;#039;f&amp;#039;&amp;#039;(&amp;#039;&amp;#039;x&amp;#039;&amp;#039;) as a quantum function and apply it to the above state, to obtain&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;Q^{-1/2} \sum_x \left|x\right\rangle \left|f(x)\right\rangle.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is still a superposition of &amp;#039;&amp;#039;Q&amp;#039;&amp;#039; states.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Apply the [[quantum Fourier transform]] to the input register. This transform (operating on a superposition of power-of-two &amp;#039;&amp;#039;Q&amp;#039;&amp;#039; = 2&amp;lt;sup&amp;gt;&amp;#039;&amp;#039;q&amp;#039;&amp;#039;&amp;lt;/sup&amp;gt; states)&lt;br /&gt;
uses a &amp;#039;&amp;#039;Q&amp;#039;&amp;#039;&amp;lt;sup&amp;gt;th&amp;lt;/sup&amp;gt; [[root of unity]] [[Imaginary unit#i and −i|such as]] &amp;lt;math&amp;gt;\omega = e^{2 \pi i /Q}&amp;lt;/math&amp;gt; to distribute the amplitude of any given &amp;lt;math&amp;gt;\left|x\right\rangle&amp;lt;/math&amp;gt; state equally among all &amp;#039;&amp;#039;Q&amp;#039;&amp;#039; of the &amp;lt;math&amp;gt;\left|y\right\rangle&amp;lt;/math&amp;gt; states, and to do so in a different way for each different &amp;#039;&amp;#039;x&amp;#039;&amp;#039;.&lt;br /&gt;
* Let &amp;#039;&amp;#039;y&amp;#039;&amp;#039; be one of the &amp;#039;&amp;#039;r&amp;#039;&amp;#039; possible integers modulo &amp;#039;&amp;#039;N&amp;#039;&amp;#039; such that &amp;#039;&amp;#039;yr/Q&amp;#039;&amp;#039; is an integer; then&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;U_{QFT} \left|x\right\rangle&lt;br /&gt;
= Q^{-1/2} \sum_y \omega^{x y} \left|y\right\rangle.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This leads to the final state&lt;br /&gt;
:&amp;lt;math&amp;gt; Q^{-1} \sum_x \sum_y \omega^{x y} \left|y\right\rangle \left|f(x)\right\rangle.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is a superposition of many more than &amp;#039;&amp;#039;Q&amp;#039;&amp;#039; states, but many fewer than &amp;#039;&amp;#039;Q&amp;#039;&amp;#039;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; states. Although there are &amp;#039;&amp;#039;Q&amp;#039;&amp;#039;&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; terms in the sum, the state &amp;lt;math&amp;gt;\left|y\right\rangle \left|f(x_0)\right\rangle&amp;lt;/math&amp;gt; can be factored out whenever &amp;#039;&amp;#039;x&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; and &amp;#039;&amp;#039;x&amp;#039;&amp;#039; produce the same value. Let&lt;br /&gt;
* &amp;lt;math&amp;gt;\omega = e^{2 \pi i /Q}&amp;lt;/math&amp;gt; be a &amp;#039;&amp;#039;Q&amp;#039;&amp;#039;&amp;lt;sup&amp;gt;th&amp;lt;/sup&amp;gt; root of unity,&lt;br /&gt;
* &amp;#039;&amp;#039;r&amp;#039;&amp;#039; be the period of &amp;#039;&amp;#039;f&amp;#039;&amp;#039;,&lt;br /&gt;
* &amp;#039;&amp;#039;x&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; be the smallest of a set of &amp;#039;&amp;#039;x&amp;#039;&amp;#039; which yield the same given &amp;#039;&amp;#039;f&amp;#039;&amp;#039;(&amp;#039;&amp;#039;x&amp;#039;&amp;#039;) (we have &amp;#039;&amp;#039;x&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; &amp;lt; &amp;#039;&amp;#039;r&amp;#039;&amp;#039;), and&lt;br /&gt;
* &amp;#039;&amp;#039;b&amp;#039;&amp;#039; run from 0 to &amp;lt;math&amp;gt;\lfloor(Q-x_0-1)/r\rfloor&amp;lt;/math&amp;gt; so that &amp;lt;math&amp;gt;x_0 + rb &amp;lt; Q.&amp;lt;/math&amp;gt;&lt;br /&gt;
Then &amp;lt;math&amp;gt;\omega^{ry}&amp;lt;/math&amp;gt; is a unit vector in the complex plane (&amp;lt;math&amp;gt;\omega&amp;lt;/math&amp;gt; is a root of unity and &amp;#039;&amp;#039;r&amp;#039;&amp;#039; and &amp;#039;&amp;#039;y&amp;#039;&amp;#039; are integers), and the coefficient of &amp;lt;math&amp;gt;Q^{-1}\left|y\right\rangle \left|f(x_0)\right\rangle&amp;lt;/math&amp;gt; in the final state is&lt;br /&gt;
:&amp;lt;math&amp;gt; \sum_{x:\, f(x)=f(x_0)} \omega^{x y} = \sum_{b} \omega^{(x_0 + r b) y} = \omega^{x_0y} \sum_{b} \omega^{r b y}.&amp;lt;/math&amp;gt;&lt;br /&gt;
Each term in this sum represents a &amp;#039;&amp;#039;different path to the same result&amp;#039;&amp;#039;, and quantum [[Interference (wave propagation)|interference]] occurs—constructive when the unit vectors &amp;lt;math&amp;gt;\omega^{ryb}&amp;lt;/math&amp;gt; point in nearly the same direction in the complex plane, which requires that &amp;lt;math&amp;gt;\omega^{ry}&amp;lt;/math&amp;gt; point along the positive real axis.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Perform a measurement.&lt;br /&gt;
We obtain some outcome &amp;#039;&amp;#039;y&amp;#039;&amp;#039; in the input register and &amp;lt;math&amp;gt;f(x_0)&amp;lt;/math&amp;gt; in the output register.&lt;br /&gt;
Since &amp;#039;&amp;#039;f&amp;#039;&amp;#039; is periodic, the probability of measuring some pair &amp;#039;&amp;#039;y&amp;#039;&amp;#039; and &amp;lt;math&amp;gt;f(x_0)&amp;lt;/math&amp;gt; is given by&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \left| Q^{-1} \sum_{x:\, f(x)=f(x_0)} \omega^{x y} \right|^2&lt;br /&gt;
= Q^{-2} \left| \sum_{b} \omega^{(x_0 + r b) y} \right|^2 = Q^{-2} \left| \sum_{b} \omega^{ b r y} \right|^2.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Analysis now shows that this probability is higher the closer the unit vector &amp;lt;math&amp;gt;\omega^{ry}&amp;lt;/math&amp;gt; is to the positive real axis, or the closer &amp;#039;&amp;#039;yr/Q&amp;#039;&amp;#039; is to an integer. Unless r is a power of 2, it won&amp;#039;t be a factor of Q.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Perform [[Continued fraction|continued fraction expansion]] on &amp;#039;&amp;#039;y/Q&amp;#039;&amp;#039; to make an approximation of it, and produce some &amp;#039;&amp;#039;c/r&amp;#039;&amp;#039;′ by it that satisfies two conditions:&lt;br /&gt;
* A: r′&amp;lt;N&lt;br /&gt;
* B: |y/Q - c/r′| &amp;lt; 1/2Q.&lt;br /&gt;
By satisfaction of these conditions, &amp;#039;&amp;#039;r&amp;#039;&amp;#039;′ would be the appropriate period &amp;#039;&amp;#039;r&amp;#039;&amp;#039; with high probability.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Check if &amp;#039;&amp;#039;f&amp;#039;&amp;#039;(&amp;#039;&amp;#039;x&amp;#039;&amp;#039;) = &amp;#039;&amp;#039;f&amp;#039;&amp;#039;(&amp;#039;&amp;#039;x&amp;#039;&amp;#039; + &amp;#039;&amp;#039;r&amp;#039;&amp;#039;′) &amp;lt;math&amp;gt;\Leftrightarrow&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;a^r \equiv 1 \pmod{N}&amp;lt;/math&amp;gt; If so, we are done.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Otherwise, obtain more candidates for &amp;#039;&amp;#039;r&amp;#039;&amp;#039; by using values near &amp;#039;&amp;#039;y&amp;#039;&amp;#039;, or multiples of &amp;#039;&amp;#039;r&amp;#039;&amp;#039;′. If any candidate works, we are done.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Otherwise, go back to step 1 of the subroutine.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explanation of the algorithm ==&lt;br /&gt;
The algorithm is composed of two parts. The first part of the algorithm turns the factoring problem into the problem of finding the period of a function, and may be implemented classically. The second part finds the period using the quantum Fourier transform, and is responsible for the quantum speedup.&lt;br /&gt;
&lt;br /&gt;
=== Obtaining factors from period ===&lt;br /&gt;
The integers less than &amp;#039;&amp;#039;N&amp;#039;&amp;#039; and [[coprime]] with &amp;#039;&amp;#039;N&amp;#039;&amp;#039; form a finite Abelian [[group (mathematics)|group]] &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; under multiplication [[modular arithmetic|modulo]] &amp;#039;&amp;#039;N&amp;#039;&amp;#039;. The size is given by [[Euler&amp;#039;s totient function]] &amp;lt;math&amp;gt;\phi(N)&amp;lt;/math&amp;gt;.&lt;br /&gt;
By the end of step 3, we have an integer &amp;#039;&amp;#039;a&amp;#039;&amp;#039; in this group. Since the group is finite, &amp;#039;&amp;#039;a&amp;#039;&amp;#039; must have a finite order &amp;#039;&amp;#039;r&amp;#039;&amp;#039;, the smallest positive integer such that&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;a^r \equiv 1\ \mbox{mod}\ N.\,&amp;lt;/math&amp;gt;&lt;br /&gt;
Therefore, &amp;#039;&amp;#039;N&amp;#039;&amp;#039; [[divides]] (also written | ) &amp;#039;&amp;#039;a&amp;#039;&amp;#039; &amp;lt;sup&amp;gt;&amp;#039;&amp;#039;r&amp;#039;&amp;#039;&amp;lt;/sup&amp;gt; − 1 . Suppose we are able to obtain &amp;#039;&amp;#039;r&amp;#039;&amp;#039;, and it is even. (If &amp;#039;&amp;#039;r&amp;#039;&amp;#039; is odd, see step 5.) Now &amp;lt;math&amp;gt;b \equiv a^{r/2} \pmod{N}&amp;lt;/math&amp;gt; is a square root of 1 modulo &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;, different from 1. This is because &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; is the order of &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; modulo &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;, so &amp;lt;math&amp;gt;a^{r/2} \not\equiv 1 \pmod{N}&amp;lt;/math&amp;gt;, else the order of &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; in this group would be &amp;lt;math&amp;gt;r/2&amp;lt;/math&amp;gt;. If &amp;lt;math&amp;gt;a^{r/2} \equiv -1 \pmod{N}&amp;lt;/math&amp;gt;, by step 6 we have to restart the algorithm with a different random number &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Eventually, we must hit an &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, of order &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; in &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt;, such that &amp;lt;math&amp;gt;b \equiv a^{r/2} \not\equiv 1, -1 \pmod{N}&amp;lt;/math&amp;gt;. This is because such a &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; is a square root of 1 modulo &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;, other than 1 and &amp;lt;math&amp;gt;-1&amp;lt;/math&amp;gt;, whose existence is guaranteed by the Chinese remainder theorem, since &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; is not a prime power.&lt;br /&gt;
&lt;br /&gt;
We claim that &amp;lt;math&amp;gt;d = \operatorname{gcd}(b-1, N)&amp;lt;/math&amp;gt; is a proper factor of &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;, that is, &amp;lt;math&amp;gt;d \ne 1, N&amp;lt;/math&amp;gt;. In fact if &amp;lt;math&amp;gt;d = N&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; divides &amp;lt;math&amp;gt;b - 1&amp;lt;/math&amp;gt;, so that &amp;lt;math&amp;gt;b \equiv 1 \pmod{N}&amp;lt;/math&amp;gt;, against the construction of &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;. If on the other hand &amp;lt;math&amp;gt;d = \operatorname{gcd}(b-1, N) = 1&amp;lt;/math&amp;gt;, then by [[Bézout&amp;#039;s identity]] there are integers &amp;lt;math&amp;gt;u, v&amp;lt;/math&amp;gt; such that&lt;br /&gt;
:&amp;lt;math&amp;gt;(b-1) u + N v = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
Multiplying both sides by &amp;lt;math&amp;gt;b+1&amp;lt;/math&amp;gt; we obtain&lt;br /&gt;
:&amp;lt;math&amp;gt;(b^{2}-1) u + N(b+1) v = b+1&amp;lt;/math&amp;gt;.&lt;br /&gt;
Since &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; divides &amp;lt;math&amp;gt;b^{2} - 1 \equiv a^{r} - 1 \pmod{N}&amp;lt;/math&amp;gt;, we obtain that &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; divides &amp;lt;math&amp;gt;b+1&amp;lt;/math&amp;gt;, so that &amp;lt;math&amp;gt;b \equiv -1 \pmod{N}&amp;lt;/math&amp;gt;, again contradicting the construction of &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Thus &amp;lt;math&amp;gt;d&amp;lt;/math&amp;gt; is the required proper factor of &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Finding the period ===&lt;br /&gt;
Shor&amp;#039;s period-finding algorithm relies heavily on the ability of a [[quantum computer]] to be in many states simultaneously.&lt;br /&gt;
Physicists call this behavior a &amp;quot;[[Quantum superposition|superposition]]&amp;quot; of states. To compute the period of a function &amp;#039;&amp;#039;f&amp;#039;&amp;#039;, we evaluate the function at all points simultaneously.&lt;br /&gt;
&lt;br /&gt;
Quantum physics does not allow us to access all this information directly, though. A [[measurement in quantum mechanics|measurement]] will yield only one of all possible values, destroying all others. If not for the [[no cloning theorem]], we could first measure &amp;#039;&amp;#039;f&amp;#039;&amp;#039;(&amp;#039;&amp;#039;x&amp;#039;&amp;#039;) without measuring &amp;#039;&amp;#039;x&amp;#039;&amp;#039;, and then make a few copies of the resulting state (which is a superposition of states all having the same &amp;#039;&amp;#039;f&amp;#039;&amp;#039;(&amp;#039;&amp;#039;x&amp;#039;&amp;#039;)). Measuring &amp;#039;&amp;#039;x&amp;#039;&amp;#039; on these states would provide different &amp;#039;&amp;#039;x&amp;#039;&amp;#039; values which give the same &amp;#039;&amp;#039;f&amp;#039;&amp;#039;(&amp;#039;&amp;#039;x&amp;#039;&amp;#039;), leading to the period. Because we cannot [[Quantum cloning|make exact copies of a quantum state]], this method does not work. Therefore we have to carefully transform the superposition to another state that will return the correct answer with high probability. This is achieved by the [[quantum Fourier transform]].&lt;br /&gt;
&lt;br /&gt;
Shor thus had to solve three &amp;quot;implementation&amp;quot; problems. All of them had to be implemented &amp;quot;fast&amp;quot;, which means that they can be implemented with a number of [[quantum gate]]s that is [[polynomial#Complexity|polynomial]] in &amp;lt;math&amp;gt;\log N&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Create a superposition of states.&lt;br /&gt;
&lt;br /&gt;
This can be done by applying [[Hadamard transform|Hadamard]] gates to all qubits in the input register. Another approach would be to use the quantum Fourier transform (see below).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; Implement the function &amp;#039;&amp;#039;f&amp;#039;&amp;#039; as a quantum transform.&lt;br /&gt;
&lt;br /&gt;
To achieve this, Shor used [[Exponentiating by squaring|repeated squaring]] for his modular exponentiation transformation. It is important to note that this step is more difficult to implement than the quantum Fourier transform, in that it requires ancillary qubits and substantially more gates to accomplish.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; Perform a quantum Fourier transform.&lt;br /&gt;
&lt;br /&gt;
By using controlled rotation gates and Hadamard gates, Shor designed a circuit for the quantum Fourier transform (with &amp;#039;&amp;#039;Q&amp;#039;&amp;#039; = 2&amp;lt;sup&amp;gt;&amp;#039;&amp;#039;q&amp;#039;&amp;#039;&amp;lt;/sup&amp;gt;) that uses just &amp;lt;math&amp;gt;q(q-1)/2 = O((\log Q)^2)&amp;lt;/math&amp;gt; gates.&amp;lt;ref&amp;gt;{{Harvnb|Shor|1999|p=14}}.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After all these transformations a measurement will yield an approximation to the period &amp;#039;&amp;#039;r&amp;#039;&amp;#039;.&lt;br /&gt;
For simplicity assume that there is a &amp;#039;&amp;#039;y&amp;#039;&amp;#039; such that &amp;#039;&amp;#039;yr/Q&amp;#039;&amp;#039; is an integer.&lt;br /&gt;
Then the probability to measure &amp;#039;&amp;#039;y&amp;#039;&amp;#039; is 1.&lt;br /&gt;
To see that we notice that then&lt;br /&gt;
:&amp;lt;math&amp;gt;e^{-2 \pi i b yr/Q} = 1\,&amp;lt;/math&amp;gt;&lt;br /&gt;
for all integers &amp;#039;&amp;#039;b&amp;#039;&amp;#039;. Therefore the sum whose square gives us the probability to measure &amp;#039;&amp;#039;y&amp;#039;&amp;#039; will be &amp;#039;&amp;#039;Q/r&amp;#039;&amp;#039; since &amp;#039;&amp;#039;b&amp;#039;&amp;#039; takes roughly &amp;#039;&amp;#039;Q/r&amp;#039;&amp;#039; values and thus the probability is &amp;lt;math&amp;gt;1/r^2&amp;lt;/math&amp;gt;. There are &amp;#039;&amp;#039;r&amp;#039;&amp;#039; &amp;#039;&amp;#039;y&amp;#039;&amp;#039; such that &amp;#039;&amp;#039;yr/Q&amp;#039;&amp;#039; is an integer and also &amp;#039;&amp;#039;r&amp;#039;&amp;#039; possibilities for &amp;lt;math&amp;gt;f(x_0)&amp;lt;/math&amp;gt;, so the probabilities sum to 1.&lt;br /&gt;
&lt;br /&gt;
Note: another way to explain Shor&amp;#039;s algorithm is by noting that it is just the [[quantum phase estimation algorithm]] in disguise.&lt;br /&gt;
&lt;br /&gt;
=== The bottleneck ===&lt;br /&gt;
The runtime bottleneck of Shor&amp;#039;s algorithm is quantum [[modular exponentiation]], which is by far slower than the [[quantum Fourier transform]] and classical pre-/post-processing. There are several approaches to constructing and optimizing circuits for modular exponentiation. The simplest and (currently) most practical approach is to mimic conventional arithmetic circuits with [[reversible computing|reversible gates]], starting with ripple-carry adders. Knowing the base and the modulus of exponentiation facilitates further optimizations.&amp;lt;ref&amp;gt;{{cite journal |first=Igor L. |last=Markov |first2=Mehdi |last2=Saeedi |title=Constant-Optimized Quantum Circuits for Modular Multiplication and Exponentiation |journal=Quantum Information and Computation |volume=12 |issue=5–6 |pages=361–394 |year=2012 |arxiv=1202.6614 |bibcode = 2012arXiv1202.6614M }}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite journal |first=Igor L. |last=Markov |first2=Mehdi |last2=Saeedi |title=Faster Quantum Number Factoring via Circuit Synthesis |journal=Phys. Rev. A |volume=87 |issue= |pages=012310 |year=2013 |arxiv=1301.3210 |bibcode = 2013PhRvA..87a2310M |doi = 10.1103/PhysRevA.87.012310 }}&amp;lt;/ref&amp;gt; Reversible circuits typically use on the order of &amp;lt;math&amp;gt;n^3&amp;lt;/math&amp;gt; gates for &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; qubits. Alternative techniques asymptotically improve gate counts by using [[quantum Fourier transform]]s, but are not competitive with less than 600 qubits due to high constants.&lt;br /&gt;
&lt;br /&gt;
== Discrete logarithms ==&lt;br /&gt;
Given prime &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; with generator &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;1 &amp;lt; g &amp;lt;p-1&amp;lt;/math&amp;gt;, suppose we know that &amp;lt;math&amp;gt;x = g^r \pmod{p}&amp;lt;/math&amp;gt;, for some &amp;#039;&amp;#039;r&amp;#039;&amp;#039;, and we wish to compute &amp;#039;&amp;#039;r&amp;#039;&amp;#039;, which is the [[discrete logarithm]]: &amp;lt;math&amp;gt;r = \log_g x \pmod{p}&amp;lt;/math&amp;gt;. Consider the Abelian group &amp;lt;math&amp;gt;\left( \mathbb{Z}_{p} \right)^\times \times \left(\mathbb{Z}_p\right)^\times&amp;lt;/math&amp;gt; where each factor corresponds to modular multiplication of nonzero values, assuming p is prime. Now, consider the function&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;f(a,b) = g^a x^{-b} \pmod{p}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This gives us an Abelian [[hidden subgroup problem]], as &amp;#039;&amp;#039;f&amp;#039;&amp;#039; corresponds to a [[group homomorphism]]. The kernel corresponds to modular multiples of (&amp;#039;&amp;#039;r&amp;#039;&amp;#039;,1). So, if we can find the kernel, we can find&amp;amp;nbsp;&amp;#039;&amp;#039;r&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== In popular culture ==&lt;br /&gt;
On the television show &amp;#039;&amp;#039;[[Stargate Universe]]&amp;#039;&amp;#039;, the lead scientist, Dr. [[Nicholas Rush]], hoped to use Shor&amp;#039;s algorithm to crack &amp;#039;&amp;#039;Destiny&amp;#039;&amp;#039;&amp;#039;s master code. He taught a [[quantum cryptography]] class at the [[University of California, Berkeley]], in which Shor&amp;#039;s algorithm was studied.&lt;br /&gt;
&lt;br /&gt;
Shor&amp;#039;s algorithm was also a correct answer to a question in a Physics Bowl competition in the episode &amp;quot;[[The Bat Jar Conjecture]]&amp;quot; of the TV series &amp;#039;&amp;#039;[[The Big Bang Theory]]&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
{{reflist}}&lt;br /&gt;
&lt;br /&gt;
== Further reading ==&lt;br /&gt;
{{more footnotes|date=September 2010}}&lt;br /&gt;
*{{citation |last=Nielsen |first=Michael A. |last2=Chuang |first2=Isaac L. |lastauthoramp=yes |title=Quantum Computation and Quantum Information |year=2000 |publisher=Cambridge University Press |location= |isbn= |pages= |url= }}.&lt;br /&gt;
* Phillip Kaye, Raymond Laflamme, Michele Mosca, &amp;#039;&amp;#039;An introduction to quantum computing&amp;#039;&amp;#039;, Oxford University Press, 2007, ISBN 0-19-857049-X&lt;br /&gt;
* [http://scottaaronson.com/blog/?p=208 &amp;quot;Explanation for the man in the street&amp;quot;] by [[Scott Aaronson]], &amp;quot;[http://scottaaronson.com/blog/?p=208#comment-9958 approved]&amp;quot; by Peter Shor. (Shor wrote &amp;quot;Great article, Scott! That’s the best job of explaining quantum computing to the man on the street that I’ve seen.&amp;quot;). An alternate metaphor for the QFT was presented in [http://www.scottaaronson.com/blog/?p=208#comment-5187 one of the comments]. Scott Aaronson suggests the following 12 references as further reading (out of &amp;quot;the 10&amp;lt;sup&amp;gt;10&amp;lt;sup&amp;gt;5000&amp;lt;/sup&amp;gt;&amp;lt;/sup&amp;gt; quantum algorithm tutorials that are already on the web.&amp;quot;):&lt;br /&gt;
*{{Citation |last=Shor |first=Peter W. |year=1997 |title=Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer |journal=SIAM J. Comput. |volume=26 |issue=5 |pages=1484–1509 |id= |doi=10.1137/S0036144598347011 |arxiv=quant-ph/9508027v2|bibcode = 1999SIAMR..41..303S }}. Revised version of the original paper by Peter Shor (&amp;quot;28 pages, LaTeX. This is an expanded version of a paper that appeared in the Proceedings of the 35th Annual Symposium on Foundations of Computer Science, Santa Fe, NM, Nov. 20--22, 1994. Minor revisions made January, 1996&amp;quot;).&lt;br /&gt;
*[http://alumni.imsa.edu/~matth/quant/299/paper/index.html Quantum Computing and Shor&amp;#039;s Algorithm], Matthew Hayward, 2005-02-17, imsa.edu, LaTeX2HTML version of the original [http://alumni.imsa.edu/~matth/quant/299/paper.tex 2750 line LaTeX document], also available as a 61 page [http://alumni.imsa.edu/~matth/quant/299/paper.pdf PDF] or [http://alumni.imsa.edu/~matth/quant/299/paper.ps postscript] document.&lt;br /&gt;
*[http://homepages.cwi.nl/~rdewolf/publ/qc/survey.ps Quantum Computation and Shor&amp;#039;s Factoring Algorithm], Ronald de Wolf, CWI and University of Amsterdam, January 12, 1999, 9 page postscript document.&lt;br /&gt;
*[http://www.cs.berkeley.edu/~vazirani/f04quantum/notes/lec9.ps Shor&amp;#039;s Factoring Algorithm], Notes from Lecture 9 of Berkeley CS 294-2, dated 4 Oct 2004, 7 page postscript document.&lt;br /&gt;
*[http://www.theory.caltech.edu/people/preskill/ph229/notes/chap6.ps Chapter 6 Quantum Computation], 91 page postscript document, Caltech, Preskill, PH229.&lt;br /&gt;
*[http://www-users.cs.york.ac.uk/~schmuel/comp/comp.html Quantum computation: a tutorial] by [http://www.cs.york.ac.uk/~schmuel/ Samuel L. Braunstein].&lt;br /&gt;
*[http://www.cs.ucr.edu/~neal/1996/cosc185-S96/shor/high-level.html The Quantum States of Shor&amp;#039;s Algorithm], by Neal Young, Last modified: Tue May 21 11:47:38 1996.&lt;br /&gt;
*[http://web.archive.org/web/20121115112940/http://people.ccmr.cornell.edu/~mermin/qcomp/chap3.pdf III. Breaking RSA Encryption with a Quantum Computer: Shor&amp;#039;s Factoring Algorithm], Lecture notes on Quantum computation, Cornell University, Physics 481-681, CS 483; Spring, 2006 by N. David Mermin. Last revised 2006-03-28, 30 page PDF document.&lt;br /&gt;
*[http://www.arxiv.org/abs/quant-ph/0303175 arXiv quant-ph/0303175 Shor&amp;#039;s Algorithm for Factoring Large Integers. C. Lavor, L.R.U. Manssur, R. Portugal]. Submitted on 29 Mar 2003. This work is a tutorial on Shor&amp;#039;s factoring algorithm by means of a worked out example. Some basic concepts of Quantum Mechanics and quantum circuits are reviewed. It is intended for non-specialists which have basic knowledge on undergraduate Linear Algebra. 25 pages, 14 figures, introductory review.&lt;br /&gt;
*[http://www.arxiv.org/abs/quant-ph/0010034 arXiv quant-ph/0010034 Shor&amp;#039;s Quantum Factoring Algorithm, Samuel J. Lomonaco, Jr], Submitted October 9, 2000, This paper is a written version of a one hour lecture given on Peter Shor&amp;#039;s quantum factoring algorithm. 22 pages.&lt;br /&gt;
*[http://www.cs.princeton.edu/theory/complexity/quantumchap.pdf Chapter 20 Quantum Computation], from &amp;#039;&amp;#039;Computational Complexity: A Modern Approach&amp;#039;&amp;#039;, Draft of a book: Dated January 2007, Comments welcome!, Sanjeev Arora and Boaz Barak, Princeton University.&lt;br /&gt;
*[http://blogs.discovermagazine.com/80beats/2011/01/19/a-step-towards-quantum-computing-entangling-10-billion-particles/ A Step Toward Quantum Computing: Entangling 10 Billion Particles], from &amp;quot;Discover Magazine&amp;quot;, Dated January 19, 2011.&lt;br /&gt;
*[http://www.fi.muni.cz/usr/gruska/survey1.ps Josef Gruska - &amp;#039;&amp;#039;Quantum Computing Challenges&amp;#039;&amp;#039;] also in [http://www.amazon.com/Mathematics-Unlimited-Bj%C3%B6rn-Engquist/dp/3540669132 Mathematics unlimited: 2001 and beyond], Editors Björn Engquist, Wilfried Schmid, Springer, 2001, ISBN 978-3-540-66913-5&lt;br /&gt;
&lt;br /&gt;
{{Quantum computing}}&lt;br /&gt;
&lt;br /&gt;
{{number theoretic algorithms}}&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Shor&amp;#039;s Algorithm}}&lt;br /&gt;
[[Category:Quantum algorithms]]&lt;br /&gt;
[[Category:Integer factorization algorithms]]&lt;br /&gt;
[[Category:Quantum information science]]&lt;br /&gt;
[[Category:Articles containing proofs]]&lt;/div&gt;</summary>
		<author><name>en&gt;Rjwilmsi</name></author>
	</entry>
</feed>