Matematica Discreta I Lezione del giorno 12 novembre 2007 Numeri primi Sia a un qualunque numero naturale. Dall’eguaglianza a=a•1 segue che a,1 sono in ogni caso divisori di a (detti divisori banali di a). Definiamo numero primo un numero naturale a>1 i cui unici divisori sono i divisori banali 1,a . Nota: osserviamo che, nella definizione di numero primo, il numero naturale 1 non è considerato primo. Il motivo di questa esclusione del numero 1 dai numeri primi sarà chiarito nella dimostrazione del “Teorema di fattorizzazione unica”. Per verificare se un numero naturale a>1 è primo o non lo è, un test (poco efficiente) consiste ovviamente nell’esaminare tutti i numeri naturali x compresi fra 2 e (a-1), e per ognuno di tali x testare se esso è divisore o no di a (cioè dividendo a per x e verificando se il resto è 0): se nessun valore x fra 2 ed (a-1) è divisore di a, si conclude che a non ha divisori non banali, quindi a è primo; se qualche valore x fra 2 ed (a-1) è divisore di a, si è trovato un divisore non banale di a, quindi a non è primo. Si devono dunque effettuare (al più) a-2 divisioni. Esempio: Dato il numero a=1009, non si trova nessun valore x con x=2,3,4,….,1008, che sia divisore di x (effettuando 1007 divisioni). Quindi a=1009 è primo. Si può rendere più efficiente tale test basandosi sulla seguente osservazione: se un numero naturale a>1 non è primo, esso ha certamente qualche divisore non banale ≤ a (infatti se b è un divisore non banale di a allora esiste un naturale c tale che si abbia bc=a ; ma i divisori b,c non possono essere entrambi > a , perché altrimenti sarebbe a=cd>( a )2=a, contraddizione). Dunque per verificare se un numero naturale a>1 è primo o non lo è, basta esaminare i numeri naturali x con x>1 ed x a , e se fra essi non vi è un divisore di a si può concludere che a è primo. Questo riduce drasticamente il numero di divisioni da effettuare nel test. Esempio: se a=1009, il test originario prevede di testare i naturali da 2 a 1008 (operando 1007 divisioni) per scoprire che nessuno è divisore di 1009 e concludere che 1009 è primo; invece con il secondo test (più efficiente), essendo 1009 circa =31,76, dovremmo testare solo i numeri naturali da 2 a 31 (30 divisioni in tutto) per concludere che 1009 è primo. Il raffinamento del test sopra illustrato è spesso insufficiente nel caso di numeri molto grandi (con centinaia di cifre): attualmente i matematici sviluppano test di primalità sempre più efficienti e veloci. Fattorizzazione in primi Dimostreremo che i numeri primi sono come i “mattoni” elementari con cui si possono “costruire “ tutti i numeri naturali >1, nel senso che ogni naturale >1 è prodotto di numeri primi e tale rappresentazione è in un certo senso “unica”. Ricordiamo che per convenzione il termine “prodotto” si intende al limite anche con 1 solo fattore. Premettiamo un risultato preliminare sui numeri primi: Teorema. 1) Se p, q sono numeri primi distinti, p,q sono coprimi. 2) Se p è un numero primo e se p é divisore del prodotto di n numeri naturali: p (a1a2…..an) allora p è divisore di almeno uno dei fattori a1a2…..an . Dimostrazione: 1) Posto d=mcd(p,q), si ha dp, dq, ed essendo p, q primi si ha d=1, p oppure d=1, q. Ma per ipotesi pq, dunque l’unica possibilità è che d=1. 2) Utilizziamo il principio di induzione. Per n=1 l’affermazione è banale. Supponiamola vera per n e dimostriamola per n+1. Supponiamo dunque che p sia divisore del prodotto di n+1 numeri naturali: p (a1a2…..anan+1) (quindi esiste un numero naturale c tale che pc= a1a2…..anan+1) e dimostriamo che p è divisore di almeno uno dei fattori a1, a2, ….., an, an+1. Distinguiamo 2 casi. Primo caso: se p è divisore di an+1, non vi è niente da dimostrare Secondo caso: se p non è divisore di an+1, posto d=mcd(p, an+1), si ha dp (dunque d=1, p), dan+1 (quindi dp perché p non è divisore di an+1) e si conclude che 1=d=mcd(p, an+1). Per una proprietà del mcd, esistono interi relativi x, y tali che 1=px+an+1y. Moltiplicando ambo i membri per il prodotto a1a2…..an si ottiene a1a2…..an=pxa1a2…..an+ a1a2…..anan+1y=p(xa1a2…..an+cy), ossia p è divisore del prodotto pxa1a2…..an. Essendo per ipotesi vera l’affermazione per n, si ha che è divisore di almeno uno dei fattori a1a2…..an, quindi p è divisore di almeno uno dei fattori a1, a2, ….., an, an+1, come si voleva. Teorema di fattorizzazione unica. Ogni numero naturale a>1 è fattorizzabile come prodotto di numeri primi (al limite con 1 solo fattore) e tale fattorizzazione è unica (a meno dell’ordine dei fattori), nel senso che, se sono date 2 fattorizzazioni dello stesso a in prodotto di numeri primi: a=p1p2….pr=q1q2…qs allora: 1) r=s (il numero dei fattori primi nelle 2 fattorizzazioni è uguale) 2) riordinando opportunamente i fattori, si ha p1=q1,p2=q2 etc. (cioè i fattori coincidono nelle due fattorizzazioni) Dimostrazione: Esistenza della fattorizzazione: Supponiamo per assurdo che esistano numeri naturali non fattorizzabili nel prodotto di numeri primi, e costruiamo l’insieme S di tali numeri: S = {x / xN, x>1, x non é fattorizzabile nel prodotto di numeri primi} L’insieme non vuoto S, per l’Assioma del minimo, contiene un elemento minimo sS: sarà sN, s>1, s non fattorizzabile nel prodotto di numeri primi. In particolare s non è un numero primo (altrimenti s sarebbe fattorizzabile nel prodotto di numeri primi, con 1 solo fattore) quindi s ha un divisore non banale b, con b1,bs. Esiste allora un naturale c tale che s=bc, e ovviamente anche c1,cs. In totale si ha 1<b<s, 1<c<s, ed essendo s il minimo in S, si deduce che b,cS, dunque b,c sono entrambi fattorizzabili nel prodotto di numeri primi, ma allora anche a=bc sarebbe fattorizzabile nel prodotto di numeri primi, contraddizione. Unicità della fattorizzazione: Supponiamo: a=p1p2….pr=q1q2…qs con pi, qj numeri primi, e dimostriamo le tesi 1) e 2) dell’enunciato. Da a=p1(p2….pr)=q1q2…qs segue che p1 è divisore del prodotto q1q2…qs. Per il Teorema precedente, il numero primo p1 è divisore di qualcuno dei fattori q1,q2,…,qs e, riordinando opportunamente i fattori, possiamo fare in modo che p1q1. Essendo q1 primo, le possibilità per il suo divisore p1 sono p1=1 oppure p1=q1. Ma allora p1=q1 (perché per definizione di numero primo si ha p1>1). Dividendo ambo i membri dell’eguaglianza per p1 si ottiene l’eguaglianza: p2p3….pr=q2q3…qs, e si può iterare il ragionamento ottenendo che, riordinando opportunamente i fattori, si abbia p2=q2 e così via. La tesi 2) è dunque dimostrata. Dimostriamo ora la tesi 1): se per assurdo la supponessimo falsa, si avrebbe rs (per esempio r>s) e dopo s passi del precedente procedimento iterativo, dividendo per ps, si avrebbe l’eguaglianza: ps+1ps+2….pr=1, contraddizione perché i numeri primi pi sono tutti >1. Nota: anche usando gli algoritmi di fattorizzazione più veloci attualmente conosciuti, il problema di fattorizzare un dato numero naturale in prodotto di numeri primi ha una complessità di calcolo molto grande; per esempio la fattorizzazione di un numero naturale con 600 cifre decimali richiede mediamente 1017 anni di calcolo di un computer che possa eseguire 1 miliardo di istruzioni al secondo. Illustriamo 2 conseguenze del Teorema di fattorizzazione unica: Teorema. 1) I numeri primi sono infiniti. 2) La radice quadrata di un numero primo p è un numero non razionale. Dimostrazione: 1) Per assurdo supponiamo che l’insieme dei numeri primi contenga un numero finito di elementi, e sia p1,p2,….,pk l’elenco completo di tutti i numeri primi. Consideriamo il seguente numero naturale ottenuto sommando 1 al prodotto di tutti i numeri primi: a=(p1p2….pk)+1 . Per il Teorema di esistenza della fattorizzazione, a si può scomporre in fattori primi e se p è uno qualunque dei suoi fattori primi si ha pa, ossia pc=a=(p1p2….pk)+1 dove c è un naturale, da cui 1=pc-(p1p2….pk). Ma p coinciderà con uno dei pi, dunque nel secondo membro dell’eguaglianza precedente si può mettere in evidenza il fattore comune p, e si conclude che p è divisore di 1, contraddizione perché p>1. 2) Per assurdo supponiamo p =a/b dove a,b sono naturali. Si ha p=a2/b2, b2p=a2. Nel caso a=1, si ha b2p=1, contraddizione perché p>1. Nel caso b=1 si ha p=a2=aa, contraddizione perché il primo p avrebbe un divisore a non banale. Infine nel caso a>1, b>1, fattorizziamo a, b in prodotto di primi: a=p1p2….pr , b=q1q2…qs da cui si avrebbe: b2p= q1q1q2q2…qsqsp=a2=p1p1p2p2…prpr e per il Teorema di fattorizzazione unica sarebbe uguale il numero di fattori primi nelle 2 fattorizzazioni, ottenenendo l’eguaglianza 2s+1=2r, contraddizione perché 2s+1 è dispari, 2r è pari. Nota: nel settembre 2006 è stato trovato il più grande numero primo attualmente conosciuto (esso ha più di 9.800.000 cifre in base 10). Utili notizie possono essere trovate sul sito www.mersenne.org