Siamo ora in grado di dimostrare il:

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=2389, 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 1im-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]22 = [1]-[3] = -[2]
Poiché ([1]+[1])2 = [1]2+[1]22+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
p1
 ω2
p2
ω2
p2
=-[1] e moltiplicando ambo i membri per ω
p2
2 p2
p2
2 p2
(sempre
2 p2
 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
p2
2 p2
p2
2 p2
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
p1
p2
p2
p2
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 sA*A-{0}=A-1 = m2-1, dunque s<m2.
p
Ma essendo ω2  [1], s è divisore di 2p, dunque s=2r con rp. Affermiamo che r=p: se per assurdo
p 1
r
p 1 r
fosse r<p, si avrebbe rp-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).