<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://en.formulasearchengine.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=117.194.4.149</id>
	<title>formulasearchengine - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://en.formulasearchengine.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=117.194.4.149"/>
	<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/wiki/Special:Contributions/117.194.4.149"/>
	<updated>2026-05-02T01:58:12Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0-wmf.28</generator>
	<entry>
		<id>https://en.formulasearchengine.com/index.php?title=Acceptance_sampling&amp;diff=25114</id>
		<title>Acceptance sampling</title>
		<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/index.php?title=Acceptance_sampling&amp;diff=25114"/>
		<updated>2013-12-12T06:58:50Z</updated>

		<summary type="html">&lt;p&gt;117.194.4.149: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In [[computational number theory]], &#039;&#039;&#039;Cipolla&#039;s algorithm&#039;&#039;&#039; is a technique for solving a [[Congruence relation|congruence]] of the form&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;x^2\equiv n \pmod{p}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;x,n \in \mathbf{F}_{p}&amp;lt;/math&amp;gt;, so &#039;&#039;n&#039;&#039; is the square of &#039;&#039;x&#039;&#039;, and where &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; is an [[Parity (mathematics)|odd]] [[Prime number|prime]]. Here &amp;lt;math&amp;gt;\mathbf{F}_p&amp;lt;/math&amp;gt; denotes the finite [[Field (mathematics)|field]] with &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; [[Element (mathematics)|elements]]; &amp;lt;math&amp;gt;\{0,1,\dots,p-1\}&amp;lt;/math&amp;gt;. The [[algorithm]] is named after [[Michele Cipolla]], an [[Italy|Italian]] [[Mathematics|mathematician]] who discovered it in the year 1907.&lt;br /&gt;
&lt;br /&gt;
==The algorithm==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs:&#039;&#039;&#039; &lt;br /&gt;
*&amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, an odd prime,&lt;br /&gt;
*&amp;lt;math&amp;gt;n \in \mathbf{F}_p&amp;lt;/math&amp;gt;, which is a square.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs:&#039;&#039;&#039;&lt;br /&gt;
*&amp;lt;math&amp;gt;x \in \mathbf{F}_p&amp;lt;/math&amp;gt;, satisfying &amp;lt;math&amp;gt; x^2= n . &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 1 is to find an &amp;lt;math&amp;gt;a \in \mathbf{F}_p&amp;lt;/math&amp;gt; such that &amp;lt;math&amp;gt;a^2 - n&amp;lt;/math&amp;gt; is not a square. There is no known algorithm for finding such an &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, except the [[trial and error]] method. Simply pick an &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; and by computing the [[Legendre symbol]] &amp;lt;math&amp;gt;(a^2-n|p)&amp;lt;/math&amp;gt; one can see whether &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; satisfies the condition. The chance that a random &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; will satisfy is &amp;lt;math&amp;gt;(p-1)/2p&amp;lt;/math&amp;gt;. With &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; large enough this is about &amp;lt;math&amp;gt;1/2&amp;lt;/math&amp;gt;.&amp;lt;ref&amp;gt;R. Crandall, C. Pomerance Prime Numbers: A Computational Perspective Springer-Verlag, (2001) p. 157&amp;lt;/ref&amp;gt; Therefore, the expected number of trials before finding a suitable &#039;&#039;a&#039;&#039; is about 2.&lt;br /&gt;
&lt;br /&gt;
Step 2 is to compute &#039;&#039;x&#039;&#039; by computing &amp;lt;math&amp;gt;x=\left( a  + \sqrt{a^2-n} \right)^{(p+1)/2}&amp;lt;/math&amp;gt; within the field &amp;lt;math&amp;gt;\mathbf{F}_{p^2} = \mathbf{F}_p(\sqrt{a^2-n})&amp;lt;/math&amp;gt;. This &#039;&#039;x&#039;&#039; will be the one satisfying &amp;lt;math&amp;gt; x^2 =n .&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &amp;lt;math&amp;gt;x^2 = n&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;(-x)^2 = n&amp;lt;/math&amp;gt; also holds. And since &#039;&#039;p&#039;&#039; is odd, &amp;lt;math&amp;gt; x \neq -x &amp;lt;/math&amp;gt;. So whenever a solution &#039;&#039;x&#039;&#039; is found, there&#039;s always a second solution, &#039;&#039;-x&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
(Note: All elements before step two are considered as an element of &amp;lt;math&amp;gt;\mathbf{F}_{13}&amp;lt;/math&amp;gt; and all elements in step two are considered as elements of &amp;lt;math&amp;gt;\mathbf{F}_{13^2}&amp;lt;/math&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Find all &#039;&#039;x&#039;&#039; such that &amp;lt;math&amp;gt;x^2 = 10.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Before applying the algorithm, it must be checked that &amp;lt;math&amp;gt;10&amp;lt;/math&amp;gt; is indeed a square in &amp;lt;math&amp;gt;\mathbf{F}_{13}&amp;lt;/math&amp;gt;. Therefore, the Legendre symbol &amp;lt;math&amp;gt;(10 | 13)&amp;lt;/math&amp;gt; has to be equal to 1. This can be computed using [[Euler&#039;s criterion]]; &amp;lt;math&amp;gt;(10 | 13) \equiv 10^6 \equiv 1 \bmod 13.&amp;lt;/math&amp;gt; This confirms 10 being a square and hence the algorithm can be applied.&lt;br /&gt;
&lt;br /&gt;
* Step 1: Find an &#039;&#039;a&#039;&#039; such that &amp;lt;math&amp;gt;a^2 - n&amp;lt;/math&amp;gt; is not a square. As stated, this has to be done by trial and error. Choose &amp;lt;math&amp;gt;a=2&amp;lt;/math&amp;gt;. Then &amp;lt;math&amp;gt;a^2 - n&amp;lt;/math&amp;gt; becomes 7. The Legendre symbol &amp;lt;math&amp;gt;(7 | 13)&amp;lt;/math&amp;gt; has to be -1. Again this can be computed using Euler&#039;s criterion. &amp;lt;math&amp;gt;7^6 = 343^2 \equiv 5^2 \equiv 25 \equiv -1 \bmod 13.&amp;lt;/math&amp;gt; So &amp;lt;math&amp;gt;a=2&amp;lt;/math&amp;gt; is a suitable choice for &#039;&#039;a&#039;&#039;.&lt;br /&gt;
* Step 2: Compute &amp;lt;math&amp;gt;x = \left( a  + \sqrt{a^2-n} \right)^{(p+1)/2} = \left( 2 + \sqrt{-6}\right)^7 .&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\left(2+\sqrt{-6}\right)^2 = 4 + 4\sqrt{-6} - 6 = -2 + 4 \sqrt{-6} .&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;\left(2+\sqrt{-6}\right)^4 = \left(-2+4\sqrt{-6}\right)^2 = -1-3\sqrt{-6} .&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;\left(2+\sqrt{-6}\right)^6 = \left(-2 + 4\sqrt{-6}\right)\left(-1-3\sqrt{-6}\right) = 9+2\sqrt{-6} .&amp;lt;/math&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;\left(2+\sqrt{-6}\right)^7 = \left(9+2\sqrt{-6}\right)\left(2+ \sqrt{-6}\right) = 6 .&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So &amp;lt;math&amp;gt;x = 6 &amp;lt;/math&amp;gt; is a solution, as well as &amp;lt;math&amp;gt;x = -6 = 7 .&amp;lt;/math&amp;gt; Indeed, &amp;lt;math&amp;gt;6^2 = 36 = 10&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt; 7^2= 49 = 10 .&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Proof==&lt;br /&gt;
&lt;br /&gt;
The first part of the proof is to verify that &amp;lt;math&amp;gt;\mathbf{F}_{p^2} = \mathbf{F}_p(\sqrt{a^2-n}) = \{x + y\sqrt{a^2-n} : x,y \in \mathbf{F}_p\}&amp;lt;/math&amp;gt; is indeed a field. For the sake of notation simplicity, &amp;lt;math&amp;gt;\omega&amp;lt;/math&amp;gt; is defined as &amp;lt;math&amp;gt;\sqrt{a^2-n}&amp;lt;/math&amp;gt;. Of course, &amp;lt;math&amp;gt;a^2-n&amp;lt;/math&amp;gt; is a quadratic non-residue, so there is no [[square root]] in &amp;lt;math&amp;gt;\mathbf{F}_p&amp;lt;/math&amp;gt;. This &amp;lt;math&amp;gt;\omega&amp;lt;/math&amp;gt; can roughly be seen as analogous to the complex number [[Imaginary unit|i]].&lt;br /&gt;
The field arithmetic is quite obvious. [[Addition]] is defined as&lt;br /&gt;
:&amp;lt;math&amp;gt;\left(x_1 + y_1 \omega \right) + \left(x_2 + y_2 \omega \right) = \left(x_1 + x_2 \right) + \left(y_1 + y_2\right) \omega&amp;lt;/math&amp;gt;.&lt;br /&gt;
[[Multiplication]] is also defined as usual. With keeping in mind that &amp;lt;math&amp;gt;\omega^2 = a^2-n&amp;lt;/math&amp;gt;, it becomes&lt;br /&gt;
:&amp;lt;math&amp;gt;\left(x_1 + y_1 \omega \right)\left(x_2 + y_2 \omega \right) = x_1 x_2 + x_1 y_2 \omega + y_1 x_2 \omega + y_1 y_2 \omega^2 = \left( x_1 x_2 + y_1 y_2 \left(a^2-n\right)\right) + \left(x_1 y_2 + y_1 x_2 \right) \omega&amp;lt;/math&amp;gt;.&lt;br /&gt;
Now the field properties have to be checked.&lt;br /&gt;
The properties of closure under addition and multiplication, [[associativity]], [[commutativity]] and [[distributivity]] are easily seen. This is because in this case the field &amp;lt;math&amp;gt;\mathbf{F}_{p^2}&amp;lt;/math&amp;gt; is somewhat equivalent to the field of [[complex number]]s (with &amp;lt;math&amp;gt;\omega&amp;lt;/math&amp;gt; being the analogon of &#039;&#039;i&#039;&#039;).&amp;lt;br&amp;gt;&lt;br /&gt;
The additive [[Identity element|identity]] is &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt;, more formal &amp;lt;math&amp;gt;0 + 0\omega&amp;lt;/math&amp;gt;: Let &amp;lt;math&amp;gt;\alpha \in \mathbf{F}_{p^2}&amp;lt;/math&amp;gt;, then&lt;br /&gt;
:&amp;lt;math&amp;gt;\alpha + 0 = (x+y\omega) + (0 + 0\omega) = (x + 0) + (y + 0)\omega = x+y\omega = \alpha&amp;lt;/math&amp;gt;.&lt;br /&gt;
The multiplicative identity is &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;, or more formal &amp;lt;math&amp;gt; 1 + 0\omega&amp;lt;/math&amp;gt;: &lt;br /&gt;
:&amp;lt;math&amp;gt;\alpha \cdot 1 = (x+y\omega)(1 + 0\omega) = \left(x\cdot 1 + 0 \cdot 0 \left(n^2-a\right)\right) + (x\cdot 0 + 1 \cdot x)\omega = x+y\omega = \alpha&amp;lt;/math&amp;gt;.&lt;br /&gt;
The only thing left for &amp;lt;math&amp;gt;\mathbf{F}_{p^2}&amp;lt;/math&amp;gt; being a field is the existence of additive and multiplicative [[Inverse element|inverses]]. It is easily seen that the additive inverse of &amp;lt;math&amp;gt;x+y\omega&amp;lt;/math&amp;gt; is &amp;lt;math&amp;gt;-x-y\omega&amp;lt;/math&amp;gt;, which is an element of &amp;lt;math&amp;gt;\mathbf{F}_{p^2}&amp;lt;/math&amp;gt;, because &amp;lt;math&amp;gt;-x,-y \in \mathbf{F}_p&amp;lt;/math&amp;gt;. In fact, those are the additive inverse elements of &#039;&#039;x&#039;&#039; and &#039;&#039;y&#039;&#039;. For showing that every non-zero element &amp;lt;math&amp;gt;\alpha&amp;lt;/math&amp;gt; has a multiplicative inverse, write down &amp;lt;math&amp;gt;\alpha = x_1 + y_1 \omega&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\alpha^{-1} = x_2 + y_2 \omega&amp;lt;/math&amp;gt;. In other words,&lt;br /&gt;
:&amp;lt;math&amp;gt;(x_1 + y_1 \omega)(x_2 + y_2 \omega) = \left( x_1 x_2 + y_1 y_2 \left(n^2-a\right)\right) + \left(x_1 y_2 + y_1 x_2 \right) \omega = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
So the two equalities &amp;lt;math&amp;gt;x_1x_2 + y_1y_2(n^2-a) = 1&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;x_1y_2 + y_1x_2 = 0&amp;lt;/math&amp;gt; must hold. Working out the details gives expressions for &amp;lt;math&amp;gt;x_2&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;y_2&amp;lt;/math&amp;gt;, namely&lt;br /&gt;
:&amp;lt;math&amp;gt;x_2 = -y_1^{-1}x_1\left(y_1\left(n^2-a\right)-x_1^2y_1^{-1}\right)^{-1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
:&amp;lt;math&amp;gt;y_2 = \left( y_1 \left(n^2-a\right) - x_1^2y_1^{-1}\right)^{-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
The inverse elements which are shown in the expressions of &amp;lt;math&amp;gt;x_2&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;y_2&amp;lt;/math&amp;gt; do exist, because these are all elements of &amp;lt;math&amp;gt;\mathbf{F}_p&amp;lt;/math&amp;gt;. This completes the first part of the proof, showing that &amp;lt;math&amp;gt;\mathbf{F}_{p^2}&amp;lt;/math&amp;gt; is a field.&lt;br /&gt;
&lt;br /&gt;
The second and middle part of the proof is showing that for every element &amp;lt;math&amp;gt;x+y\omega \in \mathbf{F}_{p^2} : (x+y\omega)^p = x - y\omega&amp;lt;/math&amp;gt;.&lt;br /&gt;
By definition, &amp;lt;math&amp;gt;\omega^2=a^2-n&amp;lt;/math&amp;gt; is not a square in &amp;lt;math&amp;gt;\mathbf{F}_p&amp;lt;/math&amp;gt;. Euler&#039;s criterion then says that&lt;br /&gt;
:&amp;lt;math&amp;gt;\omega^{p-1} = \left(\omega^2\right)^{\frac{p-1}{2}} = -1&amp;lt;/math&amp;gt;.&lt;br /&gt;
Thus &amp;lt;math&amp;gt;\omega^p = -\omega&amp;lt;/math&amp;gt;. This, together with [[Fermat&#039;s little theorem]] (which says that &amp;lt;math&amp;gt;x^p = x&amp;lt;/math&amp;gt; for all &amp;lt;math&amp;gt;x \in \mathbf{F}_{p}&amp;lt;/math&amp;gt;) and the knowledge that in fields of [[Characteristic (algebra)|characteristic]] &#039;&#039;p&#039;&#039; the equation &amp;lt;math&amp;gt;\left(a+b\right)^p = a^p + b^p&amp;lt;/math&amp;gt; holds, shows the desired result&lt;br /&gt;
:&amp;lt;math&amp;gt;(x+y\omega)^p = x^p + y^p \omega^p = x - y\omega&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The third and last part of the proof is to show that if &amp;lt;math&amp;gt;x_0=\left(a+\omega \right)^{\frac{p+1}{2}} \in \mathbf{F}_{p^2}&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;x_0^2=n \in \mathbf{F}_p&amp;lt;/math&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
Compute&lt;br /&gt;
:&amp;lt;math&amp;gt;x_0^2 = \left(a+\omega \right)^{p+1} = (a+\omega)(a+\omega)^{p}=(a+\omega)(a-\omega)=a^2 - \omega^2 = a^2 - \left(a^2 - n \right) = n&amp;lt;/math&amp;gt;.&lt;br /&gt;
Note that this computation took place in &amp;lt;math&amp;gt;\mathbf{F}_{p^2}&amp;lt;/math&amp;gt;, so this &amp;lt;math&amp;gt;x_0 \in \mathbf{F}_{p^2}&amp;lt;/math&amp;gt;. But with [[Lagrange&#039;s theorem (number theory)|Lagrange&#039;s theorem]], stating that a non-zero [[Integer polynomial|polynomial]] of degree &#039;&#039;n&#039;&#039; has at most &#039;&#039;n&#039;&#039; roots in any field &#039;&#039;K&#039;&#039;, and the knowledge that &amp;lt;math&amp;gt;x^2-n&amp;lt;/math&amp;gt; has 2 roots in &amp;lt;math&amp;gt;\mathbf{F}_p&amp;lt;/math&amp;gt;, these roots must be all of the roots in &amp;lt;math&amp;gt;\mathbf{F}_{p^2}&amp;lt;/math&amp;gt;. It was just shown that &amp;lt;math&amp;gt;x_0&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;-x_0&amp;lt;/math&amp;gt; are roots of &amp;lt;math&amp;gt;x^2-n&amp;lt;/math&amp;gt; in &amp;lt;math&amp;gt;\mathbf{F}_{p^2}&amp;lt;/math&amp;gt;, so it must be that &amp;lt;math&amp;gt;x_0, -x_0 \in \mathbf{F}_p&amp;lt;/math&amp;gt;.&amp;lt;ref&amp;gt;[http://people.math.gatech.edu/~mbaker/pdf/cipolla2011.pdf M. Baker &#039;&#039;Cipolla&#039;s Algorithm for finding square roots mod p&#039;&#039;]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Speed of the algorithm==&lt;br /&gt;
After finding a suitable &#039;&#039;a&#039;&#039;, the number of operations required for the algorithm is &amp;lt;math&amp;gt;4m  + 2k - 4&amp;lt;/math&amp;gt; multiplications, &amp;lt;math&amp;gt;4m-2&amp;lt;/math&amp;gt; sums, where &#039;&#039;m&#039;&#039; is the number of [[Numerical digit|digits]] in the [[Binary numeral system|binary representation]] of &#039;&#039;p&#039;&#039; and &#039;&#039;k&#039;&#039; is the number of ones in this representation. To find &#039;&#039;a&#039;&#039; by trial and error, the expected number of computations of the Legendre symbol is 2. But one can be lucky with the first try and one may need more than 2 tries. In the field &amp;lt;math&amp;gt;\mathbf{F}_{p^2}&amp;lt;/math&amp;gt;, the following two equalities hold&lt;br /&gt;
:&amp;lt;math&amp;gt;(x+y\omega)^2 = \left(x^2 + y^2 \omega^2 \right) + \left(\left(x+y\right)^2-x^2-y^2\right)\omega,&amp;lt;/math&amp;gt;&lt;br /&gt;
where &amp;lt;math&amp;gt;\omega^2 = a^2-n&amp;lt;/math&amp;gt; is known in advance. This computation needs 4 multiplications and 4 sums.&lt;br /&gt;
:&amp;lt;math&amp;gt;\left(x+y\omega\right)^2\left(c + \omega \right) = \left( cd - b\left(x+d\right)\right) + \left(d^2 - by\right)\omega,&amp;lt;/math&amp;gt;&lt;br /&gt;
where &amp;lt;math&amp;gt;d=(x+yc)&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;b=ny&amp;lt;/math&amp;gt;. This operation needs 6 multiplications and 4 sums.&lt;br /&gt;
&lt;br /&gt;
Assuming that &amp;lt;math&amp;gt;p \equiv 1 \pmod 4,&amp;lt;/math&amp;gt; (in the case &amp;lt;math&amp;gt;p \equiv 3 \pmod 4&amp;lt;/math&amp;gt;, the direct computation &amp;lt;math&amp;gt;x \equiv \pm n^{\frac{p+1}{4}}&amp;lt;/math&amp;gt; is much faster) the binary expression of &amp;lt;math&amp;gt;(p+1)/2&amp;lt;/math&amp;gt; has &amp;lt;math&amp;gt;m-1&amp;lt;/math&amp;gt; digits, of which &#039;&#039;k&#039;&#039; are ones. So for computing a &amp;lt;math&amp;gt;(p+1)/2&amp;lt;/math&amp;gt; power of &amp;lt;math&amp;gt;\left(a + \omega \right)&amp;lt;/math&amp;gt;, the first formula has to be used &amp;lt;math&amp;gt;n-k-1&amp;lt;/math&amp;gt; times and the second &amp;lt;math&amp;gt;k-1&amp;lt;/math&amp;gt; times.&lt;br /&gt;
&lt;br /&gt;
For this, Cipolla&#039;s algorithm is better than the [[Tonelli-Shanks algorithm]] if and only if &amp;lt;math&amp;gt;S(S-1) &amp;gt; 8m+20&amp;lt;/math&amp;gt;, with &amp;lt;math&amp;gt;2^{S}&amp;lt;/math&amp;gt; being the maximum power of 2 which divides &amp;lt;math&amp;gt;p-1&amp;lt;/math&amp;gt;.&amp;lt;ref&amp;gt;[http://www.springerlink.com/content/xgxe68edy03la96p/fulltext.pdf Gonzalo Tornaria  &#039;&#039;Square roots modulo p&#039;&#039;]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
* E. Bach, J.O. Shallit &#039;&#039;Algorithmic Number Theory: Efficient algorithms&#039;&#039; MIT Press, (1996)&lt;br /&gt;
&lt;br /&gt;
{{number theoretic algorithms}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Modular arithmetic]]&lt;br /&gt;
[[Category:Number theoretic algorithms]]&lt;br /&gt;
[[Category:Articles containing proofs]]&lt;/div&gt;</summary>
		<author><name>117.194.4.149</name></author>
	</entry>
</feed>