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