Closed form: Difference between revisions
Please forgive me. |
en>PeteLaud m →Math |
||
Line 1: | Line 1: | ||
{{redirect|Lucas–Lehmer test|the test for Mersenne numbers|Lucas–Lehmer primality test|the Lucas–Lehmer–Riesel test|Lucas–Lehmer–Riesel test}} | |||
In [[computational number theory]], the '''Lucas test''' is a [[primality test]] for a natural number ''n''; it requires that the [[prime number#Prime divisors|prime factors]] of ''n'' − 1 be already known.<ref>{{cite book |last1=Crandall |first1=Richard |last2=Pomerance |first2=Carl | |||
|title=Prime Numbers: a Computational Perspective (2nd edition) | |||
|year=2005|publisher=Springer|isbn=0-387-25282-7 |page=173}}</ref><ref>{{cite book |last1=Křížek |first1=Michal |last2=Luca |first2=Florian |last3=Somer |first3=Lawrence |title=17 Lectures on Fermat Numbers: From Number Theory to Geometry |series=CMS Books in Mathematics |volume= 9|year=2001|publisher=Canadian Mathematical Society/Springer|isbn=0-387-95332-9 |page=41}}</ref> It is the basis of the [[Pratt certificate]] that gives a concise verification that ''n'' is prime. | |||
==Concepts== | |||
Let ''n'' be a positive integer. If there exists an integer 1 < ''a'' < ''n'' such that | |||
:<math>a^{n-1}\ \equiv\ 1 \pmod n \, </math> | |||
and for every prime factor ''q'' of ''n'' − 1 | |||
:<math>a^{({n-1})/q}\ \not\equiv\ 1 \pmod n \, </math> | |||
then ''n'' is prime. If no such number ''a'' exists, then ''n'' is either 1 or [[composite number|composite]]. | |||
The reason for the correctness of this claim is as follows: if the first equality holds for ''a'', we can deduce that ''a'' and ''n'' are [[coprime#Properties|coprime]]. If ''a'' also survives the second step, then the [[Order (group theory)|order]] of ''a'' in the [[Group (mathematics)|group]] ('''Z'''/''n'''''Z''')* is equal to ''n''−1, which means that the order of that group is ''n''−1 (because the order of every element of a group divides the order of the group), implying that ''n'' is [[Prime number|prime]]. Conversely, if ''n'' is prime, then there exists a [[primitive root modulo n|primitive root modulo ''n'']], or [[generating set of a group|generator]] of the group ('''Z'''/''n'''''Z''')*. Such a generator has order |('''Z'''/''n'''''Z''')*| = ''n''−1 and both equalities will hold for any such primitive root. | |||
Note that if there exists an ''a'' < ''n'' such that the first equality fails, ''a'' is called a [[Fermat primality test#Concept|Fermat witness]] for the compositeness of ''n''. | |||
==Example== | |||
For example, take ''n'' = 71. Then ''n'' − 1 = 70 and the prime factors of 70 are 2, 5 and 7. | |||
We randomly select an ''a'' < ''n'' of 17. Now we compute: | |||
:<math>17^{70}\ \equiv\ 1 \pmod {71}.</math> | |||
For all integers ''a'' it is known that | |||
:<math>a^{n - 1}\equiv 1 \pmod{n}\ \text{ if and only if } \text{ ord}(a)|(n-1).</math> | |||
Therefore, the multiplicative order of 17 (mod 71) is not necessarily 70 because some factor of 70 may also work above. So check 70 divided by its prime factors: | |||
:<math>17^{35}\ \equiv\ 70\ \not\equiv\ 1 \pmod {71}</math> | |||
:<math>17^{14}\ \equiv\ 25\ \not\equiv\ 1 \pmod {71}</math> | |||
:<math>17^{10}\ \equiv\ 1\ \equiv\ 1 \pmod {71}.</math> | |||
Unfortunately, we get that 17<sup>10</sup>≡1 (mod 71). So we still don't know if 71 is prime or not. | |||
We try another random ''a'', this time choosing ''a'' = 11. Now we compute: | |||
:<math>11^{70}\ \equiv\ 1 \pmod {71}.</math> | |||
Again, this does not show that the multiplicative order of 11 (mod 71) is 70 because some factor of 70 may also work. So check 70 divided by its prime factors: | |||
:<math>11^{35}\ \equiv\ 70\ \not\equiv\ 1 \pmod {71}</math> | |||
:<math>11^{14}\ \equiv\ 54\ \not\equiv\ 1 \pmod {71}</math> | |||
:<math>11^{10}\ \equiv\ 32\ \not\equiv\ 1 \pmod {71}.</math> | |||
So the multiplicative order of 11 (mod 71) is 70, and thus 71 is prime. | |||
(To carry out these [[modular exponentiation]]s, one could use a fast exponentiation algorithm like [[Exponentiation by squaring|binary]] or [[addition-chain exponentiation]]). | |||
==Algorithm== | |||
The algorithm can be written in [[pseudocode]] as follows: | |||
'''Input''': ''n'' > 2, an odd integer to be tested for primality; ''k'', a parameter that determines the accuracy of the test | |||
'''Output''': ''prime'' if ''n'' is prime, otherwise ''composite'' or ''possibly composite''; | |||
determine the prime factors of ''n''−1. | |||
LOOP1: repeat ''k'' times: | |||
pick ''a'' randomly in the range [2, ''n'' − 1] | |||
if ''a''<sup>n-1</sup> <math>\not\equiv</math> 1 (mod ''n'') then return ''composite'' | |||
otherwise | |||
LOOP2: for all prime factors ''q'' of ''n''−1: | |||
if ''a''<sup>(n-1)/q</sup> <math>\not\equiv</math> 1 (mod ''n'') | |||
if we did not check this equality for all prime factors of ''n''−1 | |||
then do next LOOP2 | |||
otherwise return ''prime'' | |||
otherwise do next LOOP1 | |||
return ''possibly composite''. | |||
== See also == | |||
* [[Édouard Lucas]] | |||
* [[Fermat's little theorem]] | |||
==Notes== | |||
{{Reflist}} | |||
{{number theoretic algorithms}} | |||
[[Category:Primality tests]] |
Latest revision as of 11:18, 5 December 2013
Name: Jodi Junker
My age: 32
Country: Netherlands
Home town: Oudkarspel
Post code: 1724 Xg
Street: Waterlelie 22
my page - www.hostgator1centcoupon.info
In computational number theory, the Lucas test is a primality test for a natural number n; it requires that the prime factors of n − 1 be already known.[1][2] It is the basis of the Pratt certificate that gives a concise verification that n is prime.
Concepts
Let n be a positive integer. If there exists an integer 1 < a < n such that
and for every prime factor q of n − 1
then n is prime. If no such number a exists, then n is either 1 or composite.
The reason for the correctness of this claim is as follows: if the first equality holds for a, we can deduce that a and n are coprime. If a also survives the second step, then the order of a in the group (Z/nZ)* is equal to n−1, which means that the order of that group is n−1 (because the order of every element of a group divides the order of the group), implying that n is prime. Conversely, if n is prime, then there exists a primitive root modulo n, or generator of the group (Z/nZ)*. Such a generator has order |(Z/nZ)*| = n−1 and both equalities will hold for any such primitive root.
Note that if there exists an a < n such that the first equality fails, a is called a Fermat witness for the compositeness of n.
Example
For example, take n = 71. Then n − 1 = 70 and the prime factors of 70 are 2, 5 and 7. We randomly select an a < n of 17. Now we compute:
For all integers a it is known that
Therefore, the multiplicative order of 17 (mod 71) is not necessarily 70 because some factor of 70 may also work above. So check 70 divided by its prime factors:
Unfortunately, we get that 1710≡1 (mod 71). So we still don't know if 71 is prime or not.
We try another random a, this time choosing a = 11. Now we compute:
Again, this does not show that the multiplicative order of 11 (mod 71) is 70 because some factor of 70 may also work. So check 70 divided by its prime factors:
So the multiplicative order of 11 (mod 71) is 70, and thus 71 is prime.
(To carry out these modular exponentiations, one could use a fast exponentiation algorithm like binary or addition-chain exponentiation).
Algorithm
The algorithm can be written in pseudocode as follows:
Input: n > 2, an odd integer to be tested for primality; k, a parameter that determines the accuracy of the test Output: prime if n is prime, otherwise composite or possibly composite; determine the prime factors of n−1. LOOP1: repeat k times: pick a randomly in the range [2, n − 1] if an-1 1 (mod n) then return composite otherwise LOOP2: for all prime factors q of n−1: if a(n-1)/q 1 (mod n) if we did not check this equality for all prime factors of n−1 then do next LOOP2 otherwise return prime otherwise do next LOOP1 return possibly composite.
See also
Notes
43 year old Petroleum Engineer Harry from Deep River, usually spends time with hobbies and interests like renting movies, property developers in singapore new condominium and vehicle racing. Constantly enjoys going to destinations like Camino Real de Tierra Adentro.
Template:Number theoretic algorithms
- ↑ 20 year-old Real Estate Agent Rusty from Saint-Paul, has hobbies and interests which includes monopoly, property developers in singapore and poker. Will soon undertake a contiki trip that may include going to the Lower Valley of the Omo.
My blog: http://www.primaboinca.com/view_profile.php?userid=5889534 - ↑ 20 year-old Real Estate Agent Rusty from Saint-Paul, has hobbies and interests which includes monopoly, property developers in singapore and poker. Will soon undertake a contiki trip that may include going to the Lower Valley of the Omo.
My blog: http://www.primaboinca.com/view_profile.php?userid=5889534