Les nombres premiers de Mersenne

publicité
Les nombres premiers de Mersenne
A
Les nombres de Mersenne
Dé nition
On appelle nombres de Mersenne les nombres entiers du type Mn = 2n
1 (n 2 N ) .
Remarque
Le Père Marin Mersenne (1588-1648) fut l'un des premiers à s'intéresser à la primalité de ces nombres .
Proposition 1
Pour que Mn soit premier, il est nécessaire (mais pas suf sant) que n soit premier .
Démonstration
Si n = pq ; alors Mn = 2pq
1 = (2p
1)
qP1
2pk ; et donc Mn est divisible par Mp .
k=0
La primalité de Mn nécessite donc celle de n . Malheureusement cette condition n'est pas suf sante :
ainsi 11 est premier, mais M11 = 2047 = 23
89 ne l'est pas .
Remarques
On remarquera qu'en numération binaire, les nombres Mn s'écrivent uniquement avec des chiffres 1,
ce qui les rend particulièrement adaptés au traitement informatique . C'est pourquoi les plus grands
nombres premiers actuellement connus sont des nombres de Mersenne . Le record actuel est détenu
par M32 582 657 . C'est le 44 ième nombre premier de Mersenne . Il a été découvert le 4 septembre 2006,
et son écriture décimale est constituée de 9 808 358 chiffres . Pour suivre l'actualité des recherches,
on pourra consulter le site suivant : http://www.mersenne.org/prime.htm
Signalons en n que l'on ignore toujours si l'ensemble des nombres premiers de Mersenne est in ni .
On se propose de présenter ici la méthode couramment utilisée pour tester si Mn est premier .
B
Le critère de Lucas-Lehmer
Dé nition
On appelle nombres de Lucas-Lehmer les nombres entiers dé nis par :
L1 = 4
et
(8n
2) Ln = L2n
1
n 1
2.
n 1
On véri e aisément par récurrence que : (8n 1) Ln = u2 + v 2
p
p
3 sont les deux nombres réels véri ant u + v = 4 et uv = 1 .
où u = 2 + 3 et v = 2
[email protected]
1 / 5
Département de Mathématiques
Lemme
Si p = 2m + 1 est un nombre premier impair, alors
(
(
2m +1 [p]
si p
1 [8]
3m
et
2m
1 [p]
sinon
3m
si p
+1 [p]
1 [12]
sinon
1 [p]
Remarque
Ce résultat technique sera démontré dans l'annexe consacrée aux résidus quadratiques (Proposition 6) .
Proposition 2
(Critère de Lucas-Lehmer)
Pour tout entier n
3; Mn est un nombre premier si et seulement si Mn divise Ln
1
.
Démonstration
Soit un entier n
3 et soit p le plus petit diviseur premier de Mn . Mn est impair donc p est impair
et Mn = p q avec q = 1 (si Mn est premier) ou q
p
Notons Fp le corps Z=p Z et Ap l'anneau Fp 3 .
p (si Mn n'est pas premier) .
La surjection canonique ' : Z !Fp a
b
a est un morphisme d'anneau .
p
p
p
w
b=b
a + bb 3 est un morphisme d'anneau .
De même : Z 3 !Ap w = a + b 3
Supposons que Mn divise Ln
On a alors u
2n
2
+v
2n
2
1
= Ln
On en déduit que (dans Ap ) u
b2
. Il existe alors un entier k tel que Ln
1
n
2n
1
2n
1
= kMn .
2
= k p q; d'où u
+ 1 = kpqu
.
1
n
= b
1; et en élevant au carré u
b2 = b
1.
Notons r l'ordre du groupe multiplicatif engendré par u
b dans Ap .
r divise 2n car u
b2 = b
1 et r ne divise pas 2n
n
Finalement p q = 2n
1<r
1
car u
b2
n 1
6= b
1 . Donc r = 2n :
card Ap = p2 ; d'où q < p; et donc Mn est premier .
Supposons inversement que Mn est premier . Alors Mn = 2n
Or n
3 , donc p
De même p
Or n
1 [8] et donc d'après le lemme 2m
1 [4] donc 3p
1 [p] .
3 [12] . D'autre part, d'après la proposition 1, n est premier .
3, donc n est impair, donc p
d'où par soustraction p
1 = p = 2m + 1 .
( 1)n
1
1 [3] , et donc 4p
7 [12] , et donc d'après le lemme 3m
4 [12] .
1 [p] .
On déduit alors de la formule du binôme de Newton que, dans Ap :
p p
p
p
p p
ap + bbp 3 = b
ap + bbp b
3m 3 = b
ap bbp 3;
b
a + bb 3 = b
p p+1
p
p
p p+1
d'où b
1+ 3
= b
1+ 3 b
1
3 = b
2 . De même b
1
3
= b
2.
p 2
p 2
Remarquons en n que 1 + 3 = 2u et que 1
3 = 2v .
p 2n
p 2n
n
1
n
1
n
1
On en déduit que 22 Ln = (2u)2 + (2v)2
= 1+ 3
+ 1
3
.
Or 2n = p + 1 = 2m + 2; donc en passant aux classes résiduelles, on a dans Ap :
p p+1
p p+1
n 1
cn = b
cn = b
cn = b
b
2L
2m+1 L
22 L
1+ 3
+ b
1
3
= b
2 b
2= b
4,
[
et donc L
n 1
2
cn =
b
2=L
[email protected]
[
b
b
2; d'où L
n 1 = 0; et donc Mn divise Ln
2 / 5
1
.
Département de Mathématiques
C
Applications numériques sous Maple
Remarque
La fonction isprime(m) pré-programmée dans Maple permet de tester si l'entier m est premier .
Il existe également une fonction spécialisée mersenne(n) dans le package numtheory .
Pour d'évidentes raisons pédagogiques, on a préféré ici reprogrammer une fonction isprimeM(n)
qui teste la primalité de Mn à l'aide du critère de Lucas-Lehmer .
La fonction isprimeM(n)
Notons que la suite (Ln ) de Lucas-Lehmer croît beaucoup plus vite que la suite (Mn ) de Mersenne .
Ainsi, M8 = 255 et L7 = 4023861667741036022825635656102100994 .
Heureusement, pour tester si Mn est premier, il n'est pas nécessaire de calculer explicitement Ln
1
;
il suf t simplement de véri er si sa classe résiduelle modulo Mn est nulle . D'où la procédure suivante :
2
> isprimeM:=proc(n) local k,L,M;
6
L:=4;
M:=2^n-1;
6
6
for
k
from
2 to n-1 do L:=L^2-2 mod M od;
6
4
evalb(L=0);
end:
Testons la primalité de M2281 (son écriture décimale est constituée de 687 chiffres) :
2
> t:=time(): isprimeM(2281); 'Temps_de_calcul'=time()-t;
6
4
true
Temps_de_calcul = 2.046
Comparons le résultat avec celui fourni par la fonction isprime standard :
2
> t:=time(): isprime(2^2281-1); 'Temps_de_calcul'=time()-t;
6
4
true
Temps_de_calcul = 4.547
Une simple boucle montre alors que parmi les 1000 plus petits nombres de Mersenne, 14 sont premiers :
2
> t:=time():
LMP:='M'[2]:
6
for
n
from
3
by
2 to 1000 do
6
6
if isprimeM(n) then LMP:=LMP,'M'[n] fi: od:
6
6
[LMP];
'Temps_de_calcul'=time()-t;
6
6
[M2 ; M3 ; M5 ; M7 ; M13 ; M17 ; M19 ; M31 ; M61 ; M89 ; M107 ; M127 ; M521 ; M607 ]
4
Temps_de_calcul = 27.766
Rappelons que le critère de Lucas-Lehmer ne s'applique qu'à partir de n = 3 .
On a testé ici toutes les valeurs impaires de n . On pourrait sensiblement accélérer le calcul en ne testant
que les valeurs premières de n mais on a préféré ne pas recourir à la fonction isprime standard .
[email protected]
3 / 5
Département de Mathématiques
D
Annexe : Les résidus quadratiques
Rappels
Soit p = 2m + 1 un nombre premier impair . On rappelle que Fp = Z=p Z est un corps commutatif,
n o
et que le groupe multiplicatif Gp = Fp n b
0 est cyclique d'ordre 2m .
Proposition 3
L'ensemble Cp =
n
9 bb 2 Gp
b
c 2 Gp /
b
c = bb 2
o
est un sous-groupe de Gp d'ordre m .
Les éléments de Cp sont appelés les résidus quadratiques non nuls modulo p .
Justi cation
La stabilité de Cp est immédiate . D'autre part, dans Gp , b
a 2 = bb 2 () b
a = bb ou b
a = bb ,
n
o
et donc Cp = bb 2 / 1 b m a pour cardinal m .
n
o n
o
b , 12
b .
1,b
3,b
4,b
9 , 10
Ainsi, par exemple, C13 = b
1 2, b
2 2, b
3 2, b
4 2, b
5 2, b
62 = b
Proposition
n 4
o
Cp = b
a 2 Gp / b
am = b
1
et
Gp n Cp =
Justi cation
n
b
1
b
a 2 Gp / b
am =
o
.
L'ordre d'un élément quelconque b
a de Gp divise l'ordre 2m de Gp , donc b
a 2m = b
1 , et donc b
am =
Soit gb un élément générateur de Gp . Il existe alors un entier k tel que b
a = gb k .
b
1:
Si b
am = b
1 ; alors gb k m = 1 , donc k est pair (car g est d'ordre 2m) et il existe donc un entier h tel que
k = 2h , d'où b
a = gb 2h = gb h
2
2 Cp .
Inversement, si b
a 2 Cp , il existe bb 2 Gp tel que b
a = bb 2 ; et donc b
a m = bb 2m = b
1:
Proposition 5
Soit un entier a véri ant 1
a
2m . Pour tout entier k véri ant 1
couple (qk ; rk ) d'entiers véri ant : ka = pqk + rk et
Si on pose lp (a) = card fk 2 N / 1
k
Justi cation
m
k
m , il existe un unique
m.
rk
m et rk < 0g , alors Cp = f b
a 2 Gp / lp (a) est pair g .
Le nombre premier p = 2m + 1 ne divisant ni a ni k , il ne divise pas ka , et donc rk 6= 0 .
D'autre part, si 1
h<k
Or p ne divise ni a ni (k
m; alors (k
h) a = p (qk
h) , donc p ne divise pas (rk
qh ) + (rk
rh ) .
rh ) ; et donc rk 6= rh .
de même p ne divise pas (k + h) a , donc p ne divise pas (rk + rh ) , et donc rk 6=
Finalement jrk j =
6 jrh j , et donc fjrk j / 1
Pour tout nombre entier k véri ant 1
Or p ne divise pas m! , donc am
k
mg = fk / 1
k
m , ka
( 1)lp (a) [p] .
En conséquence, b
a 2 Cp () b
am = b
1 () am
[email protected]
4 / 5
k
mg .
rk [p] , donc m! am
m
Q
rh .
rk
( 1)lp (a) m! [p].
k=1
1 [p] () lp (a) est pair .
Département de Mathématiques
Proposition 6
Si p = 2m + 1 est un nombre premier impair, alors
(
(
2m +1 [p]
si p
1 [8]
3m
et
2m
1 [p]
sinon
3m
+1 [p]
1 [p]
si p
1 [12]
sinon
Justi cation
On se limite désormais aux deux cas particuliers a = 2 et a = 3 .
Soit k un entier véri ant 1
D'autre part
m
k
m et rk < 0 . Alors ka < pqk et donc qk > 0 .
rk , donc pqk = ka
rk
ka + m
4m < 2p , et donc qk < 2 .
3k + m
qk = 1 est donc la seule valeur possible, et dans ce cas :
m
rk
1 ,
m
ka
p
1 , p
Inversement, si k est un entier véri ant m + 1
ka
m
ka
p
1 , m+1
2m , alors 1
k
m et
2m .
ka
m
ka
p
1
d'où qk = 1 et rk < 0 .
Donc dans les deux cas particuliers a = 2 et a = 3; on a lp (a) = card fk 2 N / m + 1
ka
2mg .
D'où, en notant [x] la partie entière du nombre réel x , et en discutant selon la valeur de m :
lp (2) = card fk 2 N / m + 1
2k
2mg =
m+1
p+1
=
2
4
et
m+1
p+1
=
.
3
6
En n, en se souvenant que p est premier et impair, on véri e aisément que :
lp (3) = card fk 2 N / m + 1
2m
3m
3k
2mg =
p+1
est pair () p
1 [p] () b
2 2 Cp () lp (2) est pair ()
4
p+1
1 [p] () b
3 2 Cp () lp (3) est pair ()
est pair () p
6
[email protected]
5 / 5
1 [8] et
1 [12] .
Département de Mathématiques
Téléchargement