Teoria dei numeri Lezione del giorno 6 maggio 2009 Numeri di Mersenne. Dopo avere studiato i numeri di Fermat (successivi di una potenza di 2), studieremo i numeri che precedono una potenza di 2. Poniamo Mk=2k-1, con k>1: un tale numero naturale è detto numero di Mersenne. Come per i numeri di Fermat, studiamo quando un numero di Mersenne Mk è primo: vedremo in tale caso che k non può essere qualunque: Teorema. Se Mk=2k-1 (con k>1) è un numero primo, l’esponente k è primo. Dimostrazione: Per assurdo sia k non primo, e sia k=ts, con 1<t,s<k. Sfruttando l’identità algebrica già considerata in altre dimostrazioni: (xs-ys)=(x-y)(xs-1+xs-2y+….+xys-2+ys-1) con y=1, x=2t, si ottiene che x-y=2t-1 è divisore di xs-ys=2ts-1=2k-1=Mk , con 2t-1>1 (perché t>1) e 2t-1<Mk (perché t<k), contraddizione perché Mk è primo. Dunque, per cercare valori primi di Mk=2k-1 si deve restringere la ricerca al caso in cui l’esponente k sia primo. Esistono tuttavia esponenti k primi per cui Mk non è primo: per esempio per k=11 si ha Mk=211=2047=2389, non primo. Notizie sulla situazione attuale della ricerca sui numeri di Mersenne primi si possono trovare sul sito: www.mersenne.org (progetto GIMPS: Great Internet Mersenne Primes Search). A tutt’oggi sono stati trovati 46 numeri di Mersenne primi: il più grande è stato scoperto nell’Agosto del 2008: è il numero 243.112.609-1, ed ha 12.978.189 cifre in base 10. Le tecniche per verificare se un numero di Mersenne è primo fanno uso del cosiddetto criterio di Lucas-Lehmer, che ora esporremo. Definiamo la seguente successione Sn di numeri naturali: S1 = 4; per ogni i>1 Si = Si-12-2 (quindi per esempio S2=42-2=14, S3=142-2=194 etc.) Teorema di Lucas-Lehmer. Dato un numero di Mersenne Mp=2p-1, con p primo >2, si ha: Mp è primo Sp-1 0 (mod Mp) Dimostrazione: (): Poniamo m=Mp=2p-1, e supponiamo m primo. Costruiamo l’insieme A di tutte le espressioni formali [a]+[b], dove [a],[b]Zm e dove 2 espressioni [a]+[b], [c]+[d] si considerano uguali quando [a]=[c], [b]=[d] in Zm . Definiamo in A due operazioni di somma e prodotto, con le usuali regole algebriche (tenendo conto che i coefficienti si sommano e moltiplicano in Zm ) e con la regola che 2=[3] (in pratica si comporta come la “radice quadrata” di [3]). E’ facile verificare che A rispetto a tali operazioni è un anello commutativo con unità, ed inoltre (identificando ogni [a]Zm con [a]+[0]) si può pensare Zm sottoanello di A. Considerati gli elementi =[2]+[1], ω =[2]+[-1] in A, e posto per ogni naturale n>0: (2 n -1 ) n -1 Ln = ω(2 ) ω si ha Ln = [Sn] per ogni n. Dimostriamolo per induzione su n. Per n=1 si ha L1 = + ω = [4] = [S1]. Supponiamo che sia Ln = [Sn] . Tenendo conto che ω =[4]-[1]2 = [1], si ha: n (2 n ) (2 n ) n n -1 (2 n -1 ) (2 n -1 ) n -1 Ln+1 = ω(2 ) ω = ω (2 ) ω +2 ω (2 ) ω -[2] == (ω(2 ) ω ) 2 -[2] = Ln2- [2] = = [Sn2- 2] = [Sn+1] . Calcolando, con la regola di Newton, la potenza ([1]+[1])m in A si ottiene: m m ([1]+[1])m = [1]i α m i (*) i 0 i m m m! Ma per ogni i tale che 1im-1, si ha = dunque i!(m-1)! = m!, ossia il numero i i! (m 1)! i m primo m è divisore del prodotto i!(m-1)! , e poiché m non è divisore né di i! né di (m-1)! (che i m sono prodotti di fattori <m, dunque non multipli di m), si ha che m è divisore , ossia nella i sommatoria (*) si annullano tutti gli addendi (tenendo conto che [m]=[0] in Zm) tranne che per i=1, i=m, ottenendo così: ([1]+[1])m = [1] + m = [1] + [3](m-1)/2 (tenendo conto che 2=[3]). Calcoliamo i simboli di Legendre (3/m), (2/m) (si ha 2,3<m dunque 2,3 non sono multipli di m). Si ha, essendo p=2k+1 dispari: m = 2p-1 = 4k2-1 1k2-1 =1=12 (mod 3) quindi m è un resto quadratico modulo 3, (m/3)=1, e per la legge di reciprocità quadratica: (3/m) = (-1)(3-1)(m-1)/4(m/3) = (-1)(m-1)/2(m/3) = -(m/3) = -1 (perché (m-1)/2=2p-1-1 è dispari). Per quanto riguarda (2/m), osservando che m = 2p-1 7 (mod 8) (perché 2p=22k+1=4k2 è multiplo di 8), per una regola già dimostrata si ha (2/m)=1. In particolare per il criterio di Eulero si avrà: 2(m-1)/2 1 (mod m) 3(m-1)/2 -1 (mod m) (*) (m-1)/2 In particolare [3] =[-1] in Zm , dunque ([1]+[1])m = [1] + [-1]. Moltiplicando ambo i membri per [1] + [1] si ottiene: ([1]+[1])m+1 = ([1] + [-1])( [1] + [1]) = [1]2-[1]22 = [1]-[3] = -[2] Poiché ([1]+[1])2 = [1]2+[1]22+2[1]=[4]+[2]=[2], si ha ([2])(m+1)/2=-[2]. Ma da (*) si deduce che [2](m-1)/2=[1], quindi, essendo (m+1)/2=[(m-1)/2]+1, si ha [2](m+1)/2=-[2]. Essendo 2,m coprimi (perché m è dispari), [2] è invertibile in Zm , e moltiplicando ambo i membri dell’ultima eguaglianza per l’inverso di [2] si ottiene (m+1)/2=-[1]. Ma (m+1)/2=2p-1 quindi ω2 p1 ω2 p2 ω2 p2 =-[1] e moltiplicando ambo i membri per ω p2 2 p2 p2 2 p2 (sempre 2 p2 Lp-1, ed tenendo conto che ω =[4]-[1]2 = [1] ) si ottiene ω 2 ω , [0]= ω 2 ω essendo Ln = [Sn] per ogni n si conclude che [Sp-1]=[0] ossia la tesi Sp-1 0 (mod m). (): Per assurdo supponiamo Mp=2p-1 non primo, quindi esiste un suo divisore non banale t M p , e se m è un fattore primo di t, si ha che m è divisore di Mp , con m M p ; inoltre m è dispari, perché lo è Mp. Costruiamo l’anello A esattamente come nella dimostrazione della prima implicazione (anche se nel nostro caso m è un primo divisore di Mp, e non coincide con Mp), ed anche gli elementi , ω in A, e la successione Ln tale che Ln = [Sn] per ogni n. Essendo per ipotesi Sp-1 0 (mod Mp), si ha a p2 2 p2 p2 2 p2 maggior ragione Sp-1 0 (mod m), quindi [0]=[Sp-1]=Lp-1= ω 2 ω , ω 2 ω . Se ripercorriamo all’inverso gli ultimi passaggi della dimostrazione della prima implicazione, moltiplicando ambo i membri per ω 2 p1 p2 p2 p2 e tenendo conto che ω = [1], si ottiene: p ω2 ω2 ω2 =-[1] da cui quadrando ω2 [1]. Notiamo che la cardinalità dell’anello A è m2, essendo un elemento generico di A dipendente da una coppia di elementi in Zm . Sia s il periodo di nel gruppo moltiplicativo A* degli elementi invertibili di A rispetto al prodotto: si ha sA*A-{0}=A-1 = m2-1, dunque s<m2. p Ma essendo ω2 [1], s è divisore di 2p, dunque s=2r con rp. Affermiamo che r=p: se per assurdo p 1 r p 1 r fosse r<p, si avrebbe rp-1, e inoltre –[1] = ω 2 (ω 2 ) 2 =[1], da cui 1-1 (mod m), contraddizione perché m è primo dispari. Dunque è vero che r=p, e che s=2p. Ma allora 2p=s<m2 ( M p )2=Mp=2p-1, contraddizione. Il Teorema di Lucas-Lehmer fornisce un test deterministico di primalità per i numeri di Mersenne: verifichiamo che esso ha complessità polinomiale. Notiamo prima di tutto che il numero Mp=2p-1 rappresentato in base 2 è formato da p cifre tutte eguali a 1: dunque la sua lunghezza binaria (dimensione) è proprio p. Per la verifica della condizione Sp-1 0 (mod Mp) basta costruire le riduzioni modulo Mp dei termini S1,S2,….,Sp-1 (ognuno ottenuto dal precedente secondo la formula Si = Si-12-2), e verificare se l’ultima riduzione (di indice p-1) è 0. Il calcolo di ognuna di tali riduzioni modulo p coinvolge il calcolo del quadrato della precedente e una divisione per Mp con una complessità di ordine O(p2) (essendo p la lunghezza binaria di Mp). Poiché il numero delle riduzioni da calcolare è <p, in totale l’algoritmo ha complessità di ordine polinomiale O(p3).