Les nombres premiers de Mersenne
A Les nombres de Mersenne
Dénition
On appelle nombres de Mersenne les nombres entiers du type Mn= 2n1 (n2N).
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 Mnsoit premier, il est nécessaire (mais pas sufsant) que nsoit premier .
Démonstration
Si n=pq ; alors Mn= 2pq 1 = (2p1)
q1
P
k=0
2pk;et donc Mnest divisible par Mp.
La primalité de Mnné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 Mns'é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 44iè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 Mnest 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 (8n2) Ln=L2
n12.
On vérie aisément par récurrence que : (8n1) Ln=u2n1+v2n1
u= 2 + p3et v= 2 p3sont les deux nombres réels vériant u+v= 4 et uv = 1 .
Ghislain.Dupont@univ-lemans.fr 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]
2m 1 [p]sinon et (3m+1 [p]si p 1 [12]
3m 1 [p]sinon
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 n3; Mnest un nombre premier si et seulement si Mndivise Ln1.
Démonstration
Soit un entier n3et soit ple plus petit diviseur premier de Mn.Mnest impair donc pest impair
et Mn=p q avec q= 1 (si Mnest premier) ou qp(si Mnn'est pas premier) .
Notons Fple corps Z=p Zet Apl'anneau Fpp3.
La surjection canonique ':Z!Fpa baest un morphisme d'anneau .
De même :Zp3!Apw=a+bp3 bw=ba+b
bp3est un morphisme d'anneau .
Supposons que Mndivise Ln1.Il existe alors un entier ktel que Ln1=kMn.
On a alors u2n2+v2n2=Ln1=k p q; d'où u2n1+ 1 = k p q u2n2.
On en déduit que (dans Ap)bu2n1=b
1;et en élevant au carré bu2n=b
1.
Notons rl'ordre du groupe multiplicatif engendré par budans Ap.
rdivise 2ncar bu2n=b
1et rne divise pas 2n1car bu2n16=b
1. Donc r= 2n:
Finalement p q = 2n1< r card Ap=p2;d'où q < p; et donc Mnest premier .
Supposons inversement que Mnest premier . Alors Mn= 2n1 = p= 2m+ 1 .
Or n3, donc p 1 [8] et donc d'après le lemme 2m1 [p].
De même p 1 [4] donc 3p 3 [12] . D'autre part, d'après la proposition 1, nest premier .
Or n3, donc nest impair, donc p(1)n11 [3] , et donc 4p4 [12] .
d'où par soustraction p7 [12] , et donc d'après le lemme 3m 1 [p].
On déduit alors de la formule du binôme de Newton que, dans Ap:
ba+b
bp3p
=bap+b
bpp3p=bap+b
bpb
3mp3 = bapb
bpp3;
d'où b
1 + p3p+1 =b
1 + p3b
1p3=b
2. De même b
1p3p+1 =b
2.
Remarquons enn que 1 + p32= 2uet que 1p32= 2v.
On en déduit que 22n1Ln= (2u)2n1+ (2v)2n1=1 + p32n
+1p32n
.
Or 2n=p+ 1 = 2m+ 2;donc en passant aux classes résiduelles, on a dans Ap:
b
2c
Ln=b
2m+1 c
Ln=b
22n1c
Ln=b
1 + p3p+1 +b
1p3p+1 =b
2b
2 = b
4,
et donc [
Ln1
2b
2 = c
Ln=b
2;d'où [
Ln1=b
0;et donc Mndivise Ln1.
Ghislain.Dupont@univ-lemans.fr 2 / 5 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 mest 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 Mnest premier, il n'est pas nécessaire de calculer explicitement Ln1;
il suft simplement de vérier si sa classe résiduelle modulo Mnest nulle . D'où la procédure suivante :
2
6
6
6
6
4
>isprimeM:=proc(n) local k,L,M;
L:=4; M:=2^n-1;
for k from 2 to n-1 do L:=L^2-2 mod M od;
evalb(L=0);
end:
Testons la primalité de M2281 (son écriture décimale est constituée de 687 chiffres) :
2
6
4
>t:=time(): isprimeM(2281); 'Temps_de_calcul'=time()-t;
true
Temps_de_calcul = 2.046
Comparons le résultat avec celui fourni par la fonction isprime standard :
2
6
4
>t:=time(): isprime(2^2281-1); 'Temps_de_calcul'=time()-t;
true
Temps_de_calcul = 4.547
Une simple boucle montre alors que parmi les 1000 plus petits nombres de Mersenne, 14 sont premiers :
2
6
6
6
6
6
6
6
4
>t:=time(): LMP:='M'[2]:
for n from 3 by 2 to 1000 do
if isprimeM(n) then LMP:=LMP,'M'[n] fi: od:
[LMP]; 'Temps_de_calcul'=time()-t;
[M2; M3; M5; M7; M13; M17; M19; M31; M61; M89; M107; M127; M521; M607]
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 nmais on a préféré ne pas recourir à la fonction isprime standard .
Ghislain.Dupont@univ-lemans.fr 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 Zest un corps commutatif,
et que le groupe multiplicatif Gp=Fpnnb
0oest cyclique d'ordre 2m.
Proposition 3
L'ensemble Cp=nbc2Gp/9b
b2Gpbc=b
b2oest un sous-groupe de Gpd'ordre m.
Les éléments de Cpsont appelés les résidus quadratiques non nuls modulo p.
Justication
La stabilité de Cpest immédiate . D'autre part, dans Gp,ba2=b
b2() ba=b
bou ba=b
b,
et donc Cp=nb
b2/1bmoa pour cardinal m.
Ainsi, par exemple, C13 =nb
12,b
22,b
32,b
42,b
52,b
62o=nb
1,b
3,b
4,b
9,b
10 ,b
12 o.
Proposition 4
Cp=nba2Gp/bam=b
1oet GpnCp=nba2Gp/bam=b
1o.
Justication
L'ordre d'un élément quelconque bade Gpdivise l'ordre 2mde Gp, donc ba2m=b
1, et donc bam=b
1:
Soit bgun élément générateur de Gp. Il existe alors un entier ktel que ba=bgk.
Si bam=b
1;alors bgk m = 1 , donc kest pair (car gest d'ordre 2m) et il existe donc un entier htel que
k= 2h, d'où ba=bg2h=bgh22Cp.
Inversement, si ba2Cp, il existe b
b2Gptel que ba=b
b2;et donc bam=b
b2m=b
1:
Proposition 5
Soit un entier avériant 1a2m. Pour tout entier kvériant 1km, il existe un unique
couple (qk; rk)d'entiers vériant : ka =pqk+rket mrkm.
Si on pose lp(a) = card fk2N/1kmet rk<0g, alors Cp=fba2Gp/lp(a)est pair g.
Justication
Le nombre premier p= 2m+ 1 ne divisant ni ani k, il ne divise pas ka , et donc rk6= 0 .
D'autre part, si 1h < k m; alors (kh)a=p(qkqh)+(rkrh).
Or pne divise ni ani (kh), donc pne divise pas (rkrh);et donc rk6=rh.
de même pne divise pas (k+h)a, donc pne divise pas (rk+rh), et donc rk6=rh.
Finalement jrkj 6=jrhj, et donc fjrkj/1kmg=fk/1kmg.
Pour tout nombre entier kvériant 1km,ka rk[p], donc m!am
m
Q
k=1
rk(1)lp(a)m! [p].
Or pne divise pas m!, donc am(1)lp(a)[p].
En conséquence, ba2Cp() bam=b
1() am1 [p]() lp(a)est pair .
Ghislain.Dupont@univ-lemans.fr 4 / 5 Département de Mathématiques
Proposition 6
Si p= 2m+ 1 est un nombre premier impair, alors
(2m+1 [p]si p 1 [8]
2m 1 [p]sinon et (3m+1 [p]si p 1 [12]
3m 1 [p]sinon
Justication
On se limite désormais aux deux cas particuliers a= 2 et a= 3 .
Soit kun entier vériant 1kmet rk<0. Alors ka < pqket donc qk>0.
D'autre part mrk, donc pqk=ka rkka +m3k+m4m < 2p, et donc qk<2.
qk= 1 est donc la seule valeur possible, et dans ce cas :
mrk 1, mka p 1,pmka p1,m+ 1 ka 2m.
Inversement, si kest un entier vériant m+ 1 ka 2m, alors 1kmet mka 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 fk2N/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 fk2N/m+ 1 2k2mg=m+ 1
2=p+ 1
4et
lp(3) = card fk2N/m+ 1 3k2mg=m+ 1
3=p+ 1
6.
Enn, en se souvenant que pest premier et impair, on vérie aisément que :
2m1 [p]() b
22Cp() lp(2) est pair () p+ 1
4est pair () p 1 [8] et
3m1 [p]() b
32Cp() lp(3) est pair () p+ 1
6est pair () p 1 [12] .
Ghislain.Dupont@univ-lemans.fr 5 / 5 Département de Mathématiques
1 / 5 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !