Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Particolari di
Mersenne
Dispari Particolari di Mersenne.
E’ noto che i numeri primi di Mersenne sono il fulcro della ricerca dei numeri perfetti,
Np, secondo la classica formula che Euclide, nel 300 a. C., diede nei suoi Elementi, libro 9,
Proposizione 36 : Se p è un numero primo ed a sua volta 2p-1 è anche primo, allora ogni
numero perfetto, Np, è dato dal prodotto
Np = 2p-1 (2p-1) (1)
Effettivamente la condizione necessaria perché 2p-1 sia un primo di Mersenne è che
l’esponente p sia primo. Infatti se p è:
• pari, allora si ha 2p-1 = 22n-1 = (2n)2-12 = (2n –1) (2n +1) , cioè 2p-1 è fattorizzabile ;
Esempio
212-1 = (26)2-12 = (26 –1) (26 +1) = (64 –1) (64 +1) = 63*65 = 33*5*7*13;
• dispari composto, cioè è formato dal prodotto di almeno due primi, m * n, si ha
2p– 1 = 2nm-1 = (2n ) m-1m = (2n-1)*[2n(m-1) + 2n(m-2) + ….+2n + 1], cioè 2p-1 è fattorizzabile;
Esempio
215-1 = (25)3-13 = 323-13 = (32 –1) (322 +32+1) =31(1024+32+1) = 31*1057 = 7*31*151;
oppure
215-1 = (23)5-15 = 85-15 = (8-1) (84 +83+82+8+1) =7(4096+512+64+8+1) =7*4681 =
=7*31*151;
Ovviamente, vale ed è vera anche la seguente fattorizzazione, secondo la regola di
Ruffini di fattorizzazione di binomi che sono somma o differenza di potenze simili dispari:
215-1 = (2-1) (214+213+ …. + 2+ 1) = 214+213+ …. + 2+ 1
ma, dal punto di vista della ricerca dei dispari di Mersenne primi e non, questo tipo di
fattorizzazione deve essere considerata solo nel caso che l’esponente della base 2 è
un
numero primo, cosa che non è l’esponente 15, per cui vale solo una delle due altre
fattorizzazioni;
• primo, allora si ha
2p–1 = 2p-1p = (2-1)*[2p-1 + 2p-2 + …+2p-(p-1) + 2p-p] = 1*(2p-1 + 2p-2 + …+2+1) =
= (1+2+22 + …+2p-2 + 2p-1) = 2p– 1;
infatti l’espressione in parentesi è la somma S dei p termini di una progressione geometrica
di
ragione q=2 e primo elemento 1 e tale somma è data da
S = 1* ( qp – 1)/(q-1) = (2p– 1)/(2-1) = 2p– 1;
cioè sembra che 2p– 1, con p primo, non è fattorizzabile, in analogia ai casi precedenti,
perché sembra divisibile solo per se stesso e l’unità ma, siccome 2p–1 con p primo è dispari,
cioè della forma
pari + dispari
per alcuni 2p–1 con p primo, che non sono primi, esistono anche altri divisori perché la
loro forma pari +disp è del tipo fattorizzabile, cioè : si deve verificare, con test di primalità,
quali di essi sono primi e non.
Esempio
23– 1 = 7 che è primo perché
23–1 = 23– 13 = (2-1)( 22+2+1) ⇒ 23– 1= 22+2+1 = 6+1;
2
è della forma pari + disp non fattorizzabile che è uguale a 7;
2 –1 = 2047 che non è primo perché
11
230-1= 231-230.
In mancanza, inizialmente, di una documentazione scientifica sull’argomento, ho fatto degli
di
errori di valutazione di primalità dei dispari di valore grande ottenuti ( che, allora, non
sapevo
essere numeri di Mersenne).
In seguito, ho conosciuto tramite internet nel link “Teoria dei numeri” del sito web
www.matematicamente.it
dei documenti molto interessanti ed importanti su questo tema che sono stati soprattutto:
• The perfect number journey, by Heng O. K.;
• Primi di Mersenne e numeri perfetti, esplorazione di una rarità numerica, di F. Giordano;
da cui ho appreso altre notizie, che hanno migliorato la valutazione dei risultati che io avevo
scoperto, per cui, dopo aver corretto i precedenti errori, ho deciso di cercare di dare un
contributo alla migliore conoscenza dei dispari di Mersenne. Devo rilevare che in questa mia
ricerca indico con PM2n+1 ed NM 2n+1 i primi ed i non primi di Mersenne con 2n+1 primo.
Ho fatto anche dei programmi turbo Pascal utilizzando la (1*), di cui riporto un running:
n 22n 22n+1 -1 Np
1 22 7 28
2 24 31 496;
3 26 127 8128
4
8 216 131071 8589869056
In tale running non compare il primo numero perfetto ed il corrispondente numero primo di
Mersenne, cioè rispettivamente 6 e 3 che sono trovati solo con la formula classica euclidea, perché l’unico
difetto del fattore (22n+1-1) della (1*) è proprio quello di non poter calcolare il PM2 = 2, ma i suoi pregi sono
tanti. Inoltre l’Np per n = 15, cioè 2n+1 = 31, è scritto fattorizzato perché altrimenti nel Real del Pascal
sarebbe stato scritto erroneamente con degli zeri a partire dalla cifra delle unità.
Dopo 2n+1=31, per trovare un altro numero perfetto, o che è lo stesso un altro primo di
Mersenne, bisogna arrivare alla potenza 261 –1 e, quindi, a quella con 2n+1 = 89, 107 o 127
a partire dalla quale diventa sempre molto più difficile trovare un primo di Mersenne:
infatti il successivo primo di Mersenne, dopo PM127 , è 2521-1.
Sino ad oggi si conoscono in totale solo 41 primi di Mersenne ed altrettanti Np ed il
41° numero primo, scoperto il 15 maggio 2004 dal computer di Josh Findley della
fondazione americana GIMPS ( The Great Internet Mersenne Prime Search ) corrisponde a
224.036.583-1
che ha circa 1.000.000 di cifre in più del precedente 40°
220.996.011-1
trovato da MICHAEL SHAFER il 17 novembre 2003.
Si pensi che il 39° cioè
213466917-1
trovato da Cameron & Woltman sempre della GIMPS, nel novembre del 2001, è formato
da
milioni di cifre del sistema di numerazione decimale, che per poterlo scrivere occorre un libro
di molte centinaia di pagine.
A questo punto devo dire che non è solo importante trovare sempre nuovi e più
grandi numeri primi di Mersenne, ma lo è soprattutto la conoscenza delle loro proprietà
e caratteristiche, perché la loro semplice ricerca è solo espressione di pazienza e soprattutto
di tecnologia informatica ed anche perché, pur essendo rari, essi, molto probabilmente
anzi sicuramente come vedremo in seguito, sono di numero infinito, come tutti i primi
del tipo 2k+1, di cui ogni primo di Mersenne ha il corrispettivo: i primi dell’insieme N,
infatti come vedremo, sono in corrispondenza univoca con i primi di Mersenne, cioè
costituiscono una funzione univoca
f: N → N.
La (1*) ha il vantaggio, rispetto alla formula di Euclide, che la ricerca dei primi
di Mersenne del tipo (22n+1-1) è molto più veloce anche se sempre è difficile trovarli,
perché è sempre come trovare l’ago in un pagliaio.
In questo lavoro ci occuperemo soltanto della ricerca dei primi di Mersenne del tipo
(22n+1-1) (2)
con 2n+1 primo, secondo il fattore della (1*), cercando di evidenziarne,
esemplificandole,
nuove caratteristiche ed eventualmente cercare nuove e più veloci tecniche di loro calcolo,
con
5
l’aiuto ovviamente anche di tecniche informatiche, le sole che possono gestire numeri così
grandi.
La (2) trova più facilmente, relativamente, i primi di Mersenne rispetto alla
formula (2p-1) perché elimina automaticamente tanti valori esponenziali e calcoli inutili
per la loro ricerca e produce solo un gruppo di due tipi di numeri dispari di Mersenne
primi e non.
Infatti, già sostituendo in (1) p = 2n+1 dispari generico, molti valori di p
vengono automaticamente eliminati ed ancora di più se 2n+1 è primo. Quelli primi
sono da ricercare in questa fascia .
♣ hanno
k2n+1 = (22n+1-2)/[2*(2n+1)] = (22n-1)/(2n+1) = (2n-1) (2n+1)/(2n+1);
che è sempre dispari essendo il quoziente tra due numeri dispari, per cui uno
dei
fattori in cui si scompone 22n-1 deve essere divisibile per 2n+1 e questo capita
sempre se 2n+1 è primo.
Questa formula dimostra, se 2n+1 è primo, che:
* effettivamente è
22n+1-1 = 2*k2n+1*(2n+1) +1
Infatti
22n+1-1 = 2*k2n+1*(2n+1) +1 = 2*(2n-1) (2n+1)/(2n+1)*(2n+1) +1=
= 2*(2n-1) (2n+1) +1 da cui
2 -2 = 2*(2 +1)*(2 -1) ⇒ 2*(2 -1) = 2*(2n+1)*(2n-1);
2n+1 n n 2n
Dal punto di vista della certezza teorica sino a quali valori di t si possono avere divisori di
di 22n+1-1 non primo ed oltre il quale, in assenza di divisori, il 22n+1-1 è primo?
Ovviamente, se i primi divisori trovati moltiplicati fra loro danno come valore quello
di 22n+1-1, non ce ne sono altri, mentre, nel caso contrario, il valore di t non deve superare
quello di k2n+1/2 oppure meglio di k2n+1/3, perché i divisori di un numero qualsiasi no, cioè pari
o dispari, sono al massimo no/2 e quelli dei soli dispari sono al massimo no/3.
8
Abbiamo visto che con la (2) si trovano i numeri dispari di Mersenne, primi e non, e
quelli non primi hanno la caratteristica di essere divisibili, oltre che per l’unità e per se stessi,
per almeno due dispari primi che sono un multiplo pari di 2n+1 primo +1. Se i loro divisori,
oltre l’unità sono:
♦ uno solo, allora i numeri ottenuti sono primi di Mersenne, cioè sono i PM, che
hanno come loro divisore, oltre l’unità, se stessi, cioè 2k(2n+1) +1;
♦ più di due, allora i numeri ottenuti sono non-primi, cioè gli NM, che hanno almeno
altri due loro divisori, oltre che se stessi e l’unità.
Questa caratteristica si spiega con la semplice osservazione che ognuno di questi
divisori è un numero dispari primo del tipo 2n+1 e che un numero dispari, come PM ed NM è
formato dal prodotto di almeno 2 primi che, nel caso di primalità, sono solo se stesso e l’unità.
Rilevo che, in questo ragionamento 1, che scientificamente è un numero neutro non
primo, viene considerato per semplicità primo.
Esempi, oltre quelli già fatti, di queste caratteristiche comuni a tutti i dispari ottenuti sono:
♠ 213-1= 8191 è un PM ⇒ 213-1 = 2*315*13+1;
♠ 2 -1= 131071
17
è un PM ⇒ 217-1 = 2*3855*13+1;
♠ 219-1= 524287 è un PM ⇒ 219-1 = 2*13797*19+1;
♠ 2 -1= 2147483647
31
è un PM ⇒ 231-1 = 2*34636833*31+1;
♠ 2 -1= 137438953471 è un NM ⇒ 2 -1 • = 2*1857283155*37+1;
37 37
• è divisibile per :
- 2*3*37+1=223;
- 2*8328624*37+1=616318177
♠ 2 -1=2199023255551 è un NM ⇒ 2 -1 • = 2*26817356775*41+1;
41 41
• è divisibile per:
- 2*163*41+1=13367;
- 2*2006236*41+1=164511353;
♣ 243-1= 8796093022207 è un NM ⇒ 243-1 • = 2*102280151421*43+1;
• è divisibile per:
- 2*5*43+1=431;
- 2*113*43+1=9719;
- 2*24417*43+1=2099863;
♣ 247-1=140773488355327 è un NM ⇒ 247-1 • = 2*1497207322929*47+1;
• è divisibile per:
- 2*25*47+1=2351;
- 2*48*47+1=4513;
- 2*141112*47+1=13264529;
♣ 2 -1= 9007199254740991 è un NM ⇒ 2 -1 • = 2*84973577874915*53+1;
53 53
• è divisibile per:
- 2*655*53+1= 69431;
- 2*1223856440*53+1=
= 1297287844761;
♣ 259-1=576460752303423487 è un NM ⇒ 259-1 • = 2*488526061274877*59+1;
• è divisibile per:
- 2*t1*59+1= ?;
- 2*t2*59+1= ?;
♣ 261-1=2305843009213693951 è un PM ⇒ 261-1 • = 2*18900352538475*61+1;
9
♣ 267-1=147573952589676412927 è un NM ⇒ 267-1 • = 2*1101298153654301589*67+1;
• è divisibile per:
- 2*1445580*67+1=193707721;
- 2*5685360129*67+1=761838257287;
ecc…
Conoscendo i primi e non primi di Mersenne dalla tabella di pag. 22 del
documento “Primi di Mersenne e numeri perfetti “di Filippo Giordano, pubblicato su
www.matematicamente.it
ed a sua volta ricavata dal sito
http://www.multimania.com/villemingerard/Decompos//Mersenn1.htm
che non sono riuscito a trovare in internet forse perché è stato eliminato, tutti i divisori degli NM,
riportati sino a 2n+1 = 49 nella tabella dello stesso di pag. 22, sono stati verificati come
appartenenti al tipo
2*t*(2n+1)+1 con 2n+1 primo;
mentre gli altri, ad eccezione di quelli di 267-1, scoperti da Frank Nelson Cole nel 1903, sono
stati personalmente trovati effettuando divisioni prima solo manualmente ed utilizzando
( erroneamente perché inutili agli effetti delle ricerca) anche i dispari non primi come divisori, poi,
dopo averli calcolati con un programma T. Pascal, utilizzando solo quelli primi.
Per esempio la ricerca dei divisori di 253-1 è stata fatta prima con tutti i dispari da 53 sino a
2t(2n+1)+1 = 32331, in seguito è stata eseguita solo con quelli primi, cioè da 33073, 31179, …..
sino a 69431 che è stato il primo divisore trovato, anche con l’aiuto di una piccola calcolatrice,
con un lavoro, non sempre continuo, durato una diecina di giorni.
Mi sono fermato a questo divisore, mentre quelli 259-1, come si nota dall’elenco scritto
sopra, non sono stati calcolati e se qualcuno dotato di pazienza e curiosità vuole provare a
cercarli può utilizzare, con l’aiuto di una piccola calcolatrice, questo schema, se d = 2*t(2n+1)+1:
NM : d
e calcolando ed utilizzando ogni volta la seguente tabella
2*d = …;
3*d = …;
:::::::::::::::
9*d = ….
Ho provato a calcolare un altro divisore di 253-1 utilizzando allo stesso modo la divisione
tra 2 -1 e gli altri primi dispari > 69431 del tipo 2*t*(2n+1)+1, ma poi ho pensato che se
53
qualcuno vuol divertirsi e verificare questo metodo (ma credo che la verifica è ormai superflua),
può farlo seguendo ed eventualmente migliorando il procedimento da me seguito.
4 L’importanza di k2n+1
Abbiamo visto che il k2n+1 è un valore numerico intero caratteristico di ogni numero di
Mersenne 22n+1-1 avente 2n+1 primo che permette di rappresentarlo nella forma generale
22n+1-1= 2*k2n+1*(2n+1)+1 (2*)
10
e che le caratteristiche di k2n+1 sono:
♦ è sempre multiplo di 3;
♦ è dato da
k2n+1 = (2n+1)(2 n -1)/(2n+1);
questa formula , sostituita nella (2*), fornisce un altro modo di rappresentare 22n+1-1:
22n+1-1 = 2*(2n+1)(2 n -1)/(2n +1)*(2n +1)+1; (2**)
che :
- si può semplificare in questo modo:
22n+1-1 = 2*(2 n +1)(2 n -1)/(2n+1)*(2n+1)+1 cioè
22n+1-1 = 2*(2 n +1)(2 n -1) +1; (2***)
- permette di scrivere numeri molto grandi, sfruttando la fattorizzazione dei suoi
termini e la divisibilità per altri numeri (per es. per 3), cioè:
22n+1-1 = 2*[(2n+1)(2 n -1)/(3*(2n +1))]*[3*(2n +1)]+1;
E’ da notare che in queste formule non si calcolano le potenze 22n+1 ma solo 2n.
Riassumendo si ha che la (2), la (2*), la (2**) e la (2***) sono tre modi diversi, ma
tra loro equivalenti, di rappresentare i numeri di Mersenne con 2n+1 primo e sono molto utili
per rappresentare, anche se non tutti, un numero di Mersenne riducendo la loro complessità
come spesso numeri estremamente grandi e non completamente rappresentabili.
Abbiamo, infatti, visto, che gli ultimi numeri di Mersenne scoperti sono formati
da centinaia di milioni di cifre decimali, che, per poterli scrivere completamente ci
vogliono libri di moltissime pagine, invece le tre precedenti formule permettono di scriverli
in un modi più pratici e confrontabili tra loro ed anche in un modo molto più veloce anche
solo in linguaggio Pascal che scrive solo numeri interi dell’ordine massimo di 11 cifre
decimali.
Quanto detto è possibile e realizzabile per le caratteristiche e proprietà di k2n+1, ed è
ricavabile dalla sua formula matematica
k2n+1 = (2n+1)(2 n -1)/(2n+1)
che indica tutti i suoi casi di divisibilità numerica, cioè per 3 (ed eventualmente i suoi
multipli), per 2n+1, e per gli altri divisori dei suoi fattori.
11
In questo modo si ha più l’idea della loro grandezza, perché si possono fare dei confronti tra
loro. Naturalmente si può ancora continuare e per i numeri di Mersenne meno grandi la
loro rappresentazione è meno complessa.
Ogni numero di Mersenne del tipo 22n+1-1, con 2n+1 primo, è scindibile in questa forma
22n+1-1 = 2*22n-1 = 22n+22n-1= 22n+2*22n-1-1= 22n+22n-1+22n-1-1= ecc…
Per esempio
211-1= 210+210-1 = 1024+1023 = 2047 = 23*89 = (2*11+1)(8*11+1)
quindi, i dispari 22n+1-1, con 2n+1 primo, si possono trasformare, come ogni dispari, nella
forma
pari + disp = 22n+22n-1 oppure pari1 – disp1 = 2*2n-1 ed ancora
pari +disp = 22n+(22n-1)
che possono dare :
• un PM, se tali forme non sono fattorizzabili;
• un NM ( e sono il più delle volte), se esse sono fattorizzabili.
12
- sono più veloci nei calcoli perché eliminano automaticamente tanti valori di p inutili
agli effetti della ricerca dei PM e degli Np.
Ecco una tabella di quanto detto:
13
42 4398046511103 85
43 8796093022207
44 17592186044415 89 22473955708511767139729407 PM89
45 35184372088831
46 70367744177663
47 140737488355327
48 281474976710655 97 57533326613785764517707128447 NM97
49 562949953421311
50 1125899906842623 101 92053322582060103228331655167 NM101
51 103 368213290328240412913326620671 NM103
52
53 107 5891412645251846606613251050751 PM107
54 109 NM109
55
56 113 3770409296118182823248067248127 NM113
57 –59-60-61 NM2n+1
63 127 76117231859067920307337707853793329151 M127
ecc…
Program P_mers33;
p 2p-1
2 3
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
2n+1 2*22n-1= 22n+1-1
3 23-1= 7 è un PM;
5 25-1= 7 “ “ ;
7 27-1= 127 “ “ ;
11 211-1= 2047 è divisibile per 23;
13 2 -1= 8191 è un PM ;
13
17 217-1= 131071 “ “ ;
19 219-1= 524287 “ “ ;
23 223-1= 8.388.607 è divisibile per 47;
29 229-1= 536.870.911 è divisibile per 233;
31 2 -1= 2.147.483.647 è un PM;
31
Gli altri valori non sono riportati perché, oltre al fatto che, per dare dei risultati,
impiegano moltissime ore e giorni, almeno i più piccoli essendo molto grandi per l’ambiente
Real del Pascal, le ultime cifre vengono scritte, insieme a quella delle unità, solo con zero
ed è per questo motivo che 241-1 è riportato solo con un suo divisore.
L’unica mia difficoltà è quella di non conoscere tecniche informatiche che
scrivono numeri grandi dell’ordine di milioni di cifre decimali, quali debbono essere gli
14
ultimi PM che si debbono trovare, per cui sto cercando, dallo studio di tali numeri, di
fare un programma Pascal che li scriva utilizzando loro più semplici proprietà senza fare
complicati calcoli ed utilzzandoli nelle più semplici formule del tipo 22n+1-1 con 2n+1 molto
grandi.
Per esempio un programma che, in un tempo ragionevole di 3-4 giorni, scrive tutti i
dispari con solo 2n+1 primo, quindi PM2n+1 ed NM2n+1 , ma senza calcolarne il valore è il
seguente, in cui i PM2n+1 sono in rosso :
Program P_mers_1;
p 2 -1
p
2 22-1;
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
2n+1 22n+1-1
3 23-1;
5 25-1;
7 27-1;
11 211-1;
13 213-1;
17 213-1;
19 219-1;
23 223-1;
29 229-1;
31 231-1;
::::::::::::::::::::::::::::::::
61 261-1;
::::::::::::::::::::::::::::::::
89 289-1;
:::::::::::::::::::::::::::::::::
107 2107-1;
::::::::::::::::::::::::::::::::::
127 2127-1
521 2521-1;
::::::::::::::::::::::::::::::::::
607 2607-1;
:::::::::::::::::::::::::::::::::::
1279 21279-1;
:::::::::::::::::::::::::::::::::::
2203 22203-1;
:::::::::::::::::::::::::::::::::::::
2281 22281-1;
::::::::::::::::::::::::::::::::::::
3217 23217-1;
::::::::::::::::::::::::::::::::::::
4253 24253-1;
::::::::::::::::::::::::::::::::::::::
4453 24453-1;
15
:::::::::::::::::::::::::::::::::::::
9689 29689-1;
:::::::::::::::::::::::::::::::::::::
9941 29941-1;
:::::::::::::::::::::::::::::::::::::
11213 211213-1;
:::::::::::::::::::::::::::::::::::::
19937 219937-1;
::::::::::::::::::::::::::::::::::::::
21701 221701-1;
::::::::::::::::::::::::::::::::::::
23209 223209-1;
::::::::::::::::::::::::::::::::::::::
44497 244497-1;
::::::::::::::::::::::::::::::::::::::
86243 286243-1;
::::::::::::::::::::::::::::::::::::::
110503 2110503-1;
:::::::::::::::::::::::::::::::::::::
132049 2132049-1;
::::::::::::::::::::::::::::::::::::::::
216091 2216091-1;
::::::::::::::::::::::::::::::::::::::
756839 2756839-1;
::::::::::::::::::::::::::::::::::::::
859433 2859433-1;
::::::::::::::::::::::::::::::::::::::
1257787 21257787-1;
::::::::::::::::::::::::::::::::::::::::
1398269 21398269-1;
:::::::::::::::::::::::::::::::::::::::
2976221 22976221-1;
::::::::::::::::::::::::::::::::::::::
3021377 23021377-1;
::::::::::::::::::::::::::::::::::::::
6972593 26972593-1;
:::::::::::::::::::::::::::::::::::::::
13440041 213440041-1;
13440043 213440043-1;
13440059 213440059-1;
13440071 213440071-1;
13440083 213440083-1;
13440101 213440101-1;
13440109 213440109-1;
13440121 213440121-1;
::::::::::::::::::::::::::::::::::::::::
13466917 213466917-1;
::::::::::::::::::::::::::::::::::::::::
16
20995903 220995903-1;
20995939 220995939-1;
20995943 220995943-1;
20995957 220995957-1;
20995967 220995967-1;
20995973 220995973-1;
20995993 220995903-1;
20996009 220996009-1;
20996011 220996011-1;
20996033 220995903-1;
::::::::::::::::::::::::::::::::::::::::
24036583 224036583-1;
25964951 225964951-1;
Il running del programma è riportato sino al valore di 2n+1 = 24036583, ma, ovviamente,
potrebbe essere continuato sino ai limiti dell’ambiente Real del linguaggio T. Pascal.
Gli ultimi tre 22n+1-1 sono il 40°, 41° e 42° PM più grandi conosciuti ad oggi Aprile
2005. La difficoltà in Pascal subentra quando bisogna trattare le potenze di 2 ad esponente
>31: infatti solo coi 22n+1-1 fattorizzabili si arriva, dopo alcuni giorni di calcoli di computer, a
2n+1 = 41, il cui 241-1 è divisibile per :
- 13367 = 2*163*41+1;
- 164511353= 2*2006236*41+1.
2 5 25-1 = 31;
3 7 27-1 = 127;
5 11 211-1= 2047 = 23*89;
6 13 2 -1= 8191;
13
8 17 217-1= 131.071;
9 19 219-1= 524.287;
11 23 223-1= 8.388.607= 47*178481;
14 29 229-1=536.870.911=233*2304167(=1103*2089);
con output immediato;
15 31 231-1= 2.147.483.647; con output di 6 minuti;
Sin qui sfruttando solo la (2***) e scrivendo il numero 22n+1-1 per intero;
Per 2n+1>=37, sfruttando sempre la (2***), l’output scrive solo il numero 237-1 in forma
fattorizzata perché i calcoli relativi sono possibili in Pascal per 2n+1=37, mentre per
2n+1>37 e sino a 2n+1=67 sono scritti solo i fattori ed aggiungendo 1:
18 37 237-1= 223*616318177; con output di 10 minuti;
17
quindi
20 41 241-1= 2*1048577* 1048575 +1;
21 43 243-1= 2*2097153 * 2097151+1;
23 47 247-1= 247-1= 2*838 8609*8388607+1;
26 53 253-1= 2*67108865* 67108863+1;
29 59 259-1= 2*536870913* 536870911+1;
30 61 261-1= 2*1073741825*1073741823+1;
33 67 267-1= 2*8589934593* 8589934591+1;
l’output è stato immediato;
Ancora sfruttando le varie divisibilità di k2n+1 e dei fattori della (2**) l’output arriva
sino a 2n+1=73 bene, ma poi si superano le11 cifre decimali di scrittura dei numeri in Pascal per
cui gli altri risultati sono falsati, per esempio
35 71 271-1= 2*483939977*34359738369*71+1;
36 73 273-1= 2*941362695*68719476737*73+1;
Invece con 2n+1 = 79 si incomincia falsamente ad avere qualche zero a partire dalla cifra
delle unità
39 79 279-1= 2*69589934353*183251937960*237+1;
ma se si fanno bene i calcoli di verifica, in cui il primo fattore è il quoziente tra 239+1 e 79 mentre
il secondo tra 239-1 e 3, si ha che i valori sono esatti .
Si deve dire però che non sono stati sfruttati tutti i casi di divisibilità numerica
dati da (2**), infatti si osserva che i fattori (2 n+1) e (2 n-1) sono divisibili per 5 oppure per 3 ma
anche per 15, oppure per altro ricordando che k2n+1 è multiplo di 3.
ragione
q = 2;
il cui primo elemento è 2 e cioè
2 ; 22 ; 23 ; 24 ; 25 ; 26 ; 27; 28; 29 ; 210; 211; 212; 213;……….; 2n-1 ; 2n ; 2n+1 ; ….. (3)
il cui elemento ennesimo an è
an = 2*qn-1
ed i cui valori numerici sono
18
2; 4; 8; 16; 32; 64; 128; 256; 512; 1024; 2048; 4096; 8192;……. (3*)
19
la cui cifra dell’unità è 2,8, che si alternano rigorosamente nel caso che tali valori
sono
consecutivi.
Sottraendo 1 ad ogni elemento della (4*) si hanno corrispondentemente i seguenti
numeri dispari di Mersenne, di cui sono in rosso quelli primi:
2-1 ; 22 -1; 23 -1; 25 -1; 27-1; 211-1; 213-1; 217-1; 219-1; 223-1; 229-1; 231-1;…..
od anche
1; 3; 7; 31;127; 2047; 8191;131071; 524287; 8388607; 536870911; 2147483647;…
La primalità e non primalità dei dispari particolari di Mersenne, che indicheremo con
y, si può effettuare in vari modi, che hanno solo la difficoltà di lunghi tempi di calcolo per la loro
grandezza che è gestibile solo da potenti computer.
I test possibili, secondo il mio avviso, debbono basarsi su due caratteristiche:
- La prima: calcolare il valore di k2n+1 per cui è
22n+1 –1 = 2k2n+1 (2n+1)+1 ⇒ k2n+1 = (22n-1)/(2n+1)= (2n+1) (2n-1)/(2n+1).
In questo modo è possibile calcolare k2n+1 solo calcolando 2n , quindi tramite il k2n+1
si calcola il valore di 22n+1 –1, senza sviluppare la potenza 22n+1 .
Il calcolo del k2n+1 include sempre le seguenti operazioni:
• la semplificazione (sempre eseguibile) tra numeratore e denominatore della
frazione, corrispondente perché k2n+1 deve essere intero;
• la perfetta divisibilità di 22n-1, cioè di uno dei suoi due fattori, per 2n+1.
Esempio con 2n+1 = 23: 89
k23 = (2 -1)/23 = (2 -1) (2 +1)/23 = 2047*2049/23 = 89*2049 = 182361;
22 11 11
20
k7 = (25 +24 +23 +22 +2+1)/7 = 63/7 = 9;
- La seconda: si devono formare due gruppi di contatori, di cui ogni gruppo segue
una metodologia diversa per la identificazione della primalità o non di 22n+1 –1,
che si basano tutti sul fatto che i divisori di 22n+1 –1, sia primi che non, sono degli
opportuni dispari primi che devono essere ricercati e sono contenuti un numero
dispari primo di volte in 22n+1 –1 :
• il primo gruppo è formato da due contatori, entrambi inizializzati a 0, di cui :
- uno, per es. c, calcola, i dispari primi di prova della divisibilità;
- l’altro, per es. s, verifica se esso è un divisore di 22n+1 –1, mediante
sottrazioni successive s = s-c, sino a quando s ≤ 0: se s = 0 e
c < (22n+1 –1)/2, allora 22n+1 –1 è divisibile per c, altrimenti è primo;
• il secondo gruppo è formato di tre contatori, di cui:
- il primo contatore , per es. c che è inizializzato a 0,
identifica,
con l’aiuto di un programma ad esso abbinato, i dispari primi
2n+1;
- il secondo contatore, t inizializzato a t = 0, calcola t+1, quindi
i
possibili divisori di 22n+1 –1 del tipo, ricordando che c = 2n+1,
sono dati da
2t*c+1
che sono primi semplici;
- il terzo contatore, per esempio s, può essere usato in modi
diversi secondo questi algoritmi:
° 1° modo di utilizzo: s = 22n+1 –1; s = s- 2t*c+1; sino a
che s ≤ 0 oppure t ≥ k/2.
Se, per quel valore di c = 2n+1, è s = 0 e t < k/2 vuol
dire che y non è primo, perché ha come divisore 2t*c+1,
altrimenti è primo;
° 2° modo di utilizzo: s = 0; s = s+1; s1 = 2s+1; prod = 1;
s2= 0; s2 = s2+1; prod=(2t*c+1)*s2; finché prod≥22n+1–1,
perché un divisore di 22n+1 –1 vi deve essere contenuto un
22
7 Confronto tra la funzione y = 2x+1 ed y =22x+1 –1.
Poiché i PM, sono dei numeri dispari primi particolari ma fondamentalmente sempre
della forma
2x+1
è possibile effettuare un confronto grafico cartesiano tra la funzione dei numeri dispari
y = 2x+1 per x∈N
e la funzione dei dispari particolari di Mersenne (5*) ed in particolare con i primi di Mersenne.
180
127
120
Ux =2; Uy=4
80
40 31
31
7
3 x
1357 15 20 40 60 63
23
Dalla Fig. del confronto grafico cartesiano tra primi in genere ed i primi di Mersenne
ed, anche se questi ultimi per la loro grandezza compaiono in pochi nel diagramma, si osserva: -
la suddivisione in fasce numeriche dei primi in N° comprese e distinte negli intervalli
mersenniani ;
- c’è corrispondenza univoca tra i numeri primi di N° ed i numeri dispari particolari di
Mersenne primi e non, cioè esiste sempre la seguente uguaglianza, per ogni PM ed ogni
NM
2n1+1 = 22x+1 –1 (6)
in cui 2n+1 e 2x+1 sono primi, ma la (6) non è mai una corrispondenza biunivoca.
Infatti dalla (6) si ha
n1 = (2x+1)(2x-1)
per cui sarà anche e sempre
2(2x+1)(2x-1) +1 = 22x+1 –1.
Esempio
x 2x+1 y = 22x+1 –1 n1 = (2x +1)(2x -1) y = 2n1+1
1 3 7 3 7
2 5 31 15 31
ecc…
Ecco qualche esempio con gli intervalli mersenniani riempiti di numeri primi:
Tra PM1 =1 e PM2 = 2, gli unici PM calcolati con il fattore della (1), si trova solo l’unico
primo pari : 2.
Invece tramite il fattore (22n+1 –1) della (1*) si ha:
Tra PM2 e PM3 si trovano i primi : 3, 5;
Tra PM3 e PM5 si trovano i primi : 11, 13,17, 19, 23, 29;
Tra PM5 e PM7 si trovano i primi : 37, 41, 43, 47, 53, 59, 61,71, 73, 79, 83, 89, 97, 101,
103,107,109, 113;
Tra PM7 e PM13 si trovano i primi : 131, 137, 139, 149, 151, 157, 163, 173, 179, 181, 191,
193,197, 199, 211, 223, 227, 229, 233, 239, 241, 251,
257, 259,263, 269, 271, 277, 281, 283, 287, 293, 301,
307, 311, 313,317, 329, 331, 337, 343, 347, 349, 353,
359, 401, 407, 409,411, 417, 419, 421, 427, 431, 433,
439, 443, 449, 451, 457,461, 467, 469, 473, 479, 481,
491, 493, 497, 499, 503, 509;517, 521, 523, 529, 539,
547, 553, 557, 561, 563, 569, 571, 577, 583, 587, 593,
607, 611, 613, 617, 619, 623, 629, 631, 637, 641, 643,
649, 653, 659, 661, 667, 671,… sino a 8189;
Tra PM13 e PM17 si trovano i primi : 8197,…sino a 32767;
Tra PM17 e PM19 si trovano i primi : 32771, 32767,…sino a 524281;
Tra PM19 e PM31 si trovano i primi : 524291, 524293,…sino a 2147483643;
Tra PM31 e PM2x+1 , in cui 2x+1 è un primo >31, si trovano tutti gli altri primi sino ad oggi
febbraio 2005.
Tutti gli intervalli mersenniani si possono teoricamente ottenere calcolando i loro
elementi estremi di tipo PM, che derivano dalla progressione geometrica già considerata.
Infatti i PM2x+1 si ottengono:
- PM5 = 31 è dato da PM5 = 2*42 -1 = 31;
- PM13 = 8191 è dato da PM13 = 2*46 -1 = 8191;
24
- PM31 = 2.147.483.647 è dato da PM31 = 2*413 -1 = 2.147.483.647;
Allo stesso modo si possono calcolare tutti gli NM2x+1 con 2x+1 primo.
Bibliografia:
• The perfect number journey, by Heng O. K.;
• Primi di Mersenne e numeri perfetti, esplorazione di una rarità numerica, di F. Giordano;
25