Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Antonino Salibra
Università Ca’Foscari Venezia
18 Novembre 2019
Nel seguito indicheremo con Z l’insieme dei numeri interi.
Scriveremo talvolta a|b al posto di “a divide b”. Questo significa che esiste c ∈ Z tale
che b = ac. Ricordiamo che ogni numero intero divide 0.
2. a = ±b sse bZ = aZ.
In particolare, abbiamo:
b è un multiplo di a sse bZ ⊆ aZ
e
a divide b sse aZ ⊇ bZ.
Per esempio, da 3 divide 6 segue che 3Z ⊇ 6Z. In altre parole, ogni multiplo di 6 è anche
multiplo di 3.
1
Lezioni di Aritmetica Modulare 2
Lemma 1.3. Siano a e b numeri interi non entrambi nulli. Allora aZ + bZ = dZ, dove
d è il minimo intero positivo che appartiene all’ideale aZ + bZ.
Lemma 1.4. Siano a e b numeri interi. Allora esiste un unico numero d ≥ 0 che verifica
le seguenti proprietà:
Il massimo comun divisore di a e b coincide con l’unico numero determinato dal Lemma
1.4. Verrà indicato con MCD(a, b) oppure con (a, b).
Abbiamo (a, b) = (|a|, |b|), dove |a| e |b| sono il valore assoluto di a e b rispettivamente.
Dal Lemma 1.4 segue che (0, b) = b per ogni b ∈ Z.
Lemma 1.5. Siano a e b interi con b 6= 0 e sia a = bq + r con 0 ≤ r < |b|. Allora
(a, b) = (b, r).
Lezioni di Aritmetica Modulare 3
a = b · q1 + r2 0 ≤ r2 < |b|
b = r2 · q2 + r3 0 ≤ r3 < r2
r2 = r3 · q3 + r4 0 ≤ r4 < r3
r3 = r4 · q4 + r5 0 ≤ r5 < r4 (1)
.. .. ..
. . .
rt−2 = rt−1 · qt−1 + rt 0 ≤ rt < rt−1
rt−1 = rt · qt + 0 Allora rt = (a, b)
Se indichiamo con C(a, b) il numero di volte che calcoliamo la divisione con resto
nell’algoritmo di Euclide, allora in (1) di sopra abbiamo C(a, b) = t.
Example 1.3. (134, 36) = (36, 26) = (26, 10) = (10, 6) = (6, 4) = (4, 2) = (2, 0). In tal
caso, C(134, 36) = 6.
F1 = 1; F2 = 1; Fn = Fn−1 + Fn−2 .
I primi elementi della successione sono: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, . . . . Il
centounesimo numero di Fibonacci è F101 = 354224848179261915075. Se dividiamo Fn+1
per Fn otteniamo proprio la relazione Fn+1 = Fn + Fn−1 , cioé il quoto è 1 ed il resto è
Fn−1 < Fn . Fn+1 e Fn sono relativamente primi:
Lemma 1.6. Siano a > b interi positivi. Il numero di volte C(a, b) che iteriamo la
divisione con resto nell’algoritmo di Euclide per il calcolo del massimo comun divisore
(a, b) è al più 2log2 (b) + 2.
Proof. Siano r0 = a e r1 = b e
r0 = r1 q1 + r2 0 ≤ r2 < r1
r1 = r2 q2 + r3 0 ≤ r3 < r2
r2 = r3 q3 + r4 0 ≤ r4 < r3
r3 = r4 q4 + r5 0 ≤ r5 < r4 (2)
.. .. ..
. . .
rt−2 = rt−1 qt−1 + rt 0 ≤ rt < rt−1
rt−1 = rt qt
Proviamo che ri > 2ri+2 , per ogni i ≥ 0. Infatti,
Consideriamo il più piccolo k tale che 2k ≥ b > 2k−1 . Da 2k ≥ b segue che r2k+1 < 1,
ossia r2k+1 = 0. In termini dell’algoritmo di Euclide (2) si ha rt+1 = 0, cosı̀ abbiamo
t + 1 ≤ 2k + 1, da cui t ≤ 2k. Inoltre vi sono esattamente t divisioni effettuate in (2), cosı̀
l’algoritmo di Euclide termina in al più 2k iterazioni. Allora si ha:
r1 = r2 q2 + r3 , 0 ≤ r3 < r2 .
Proveremo per induzione su n che b ≥ Fn−1 rn−1 + Fn−2 rn > Fn rn . Iniziamo dal caso base.
Da q2 > 0 si ottiene
b = r1 ≥ r2 + r3 = F2 r2 + F1 r3 > 2r3 = F3 r3 ,
Proviamo che b = r1 ≥ Fn rn + Fn−1 rn+1 > Fn+1 rn+1 . Da rn−1 = rn qn + rn+1 con
0 ≤ rn+1 < rn si ha:
b = r1
≥ Fn−1 rn−1 + Fn−2 rn by Ind. Hp.
= Fn−1 (rn qn + rn+1 ) + Fn−2 rn by rn−1 = rn qn + rn+1
≥ Fn−1 (rn + rn+1 ) + Fn−2 rn by qn ≥ 1
= Fn−1 rn + Fn−1 rn+1 + Fn−2 rn
= Fn rn + Fn−1 rn+1 by Fn = Fn−1 + Fn−2
> Fn+1 rn+1 by rn > rn+1 .
Example 1.6. Trovare una soluzione intera dell’equazione 120x + 81y = 12. Dividendo
per 3 si ottiene 40x + 27y = 4. Siccome 40 e 27 sono relativamente primi (cioé (40, 27) =
1) allora le soluzioni intere di 40x + 27y = 1 esistono. Applichiamo l’algoritmo di Euclide
per il calcolo del massimo comun divisore: 40 = 27 + 13 e 27 = 13 ∗ 2 + 1. Quindi
1 = 27 − 13 ∗ 2 = 27 − (40 − 27) ∗ 2 = 27 − 40 ∗ 2 + 27 ∗ 2 = (−2)40 + 27 ∗ 3. Quindi
una soluzione intera dell’equazione 40x + 27y = 4 è: x = −8, y = 12. Le stesse soluzioni
funzionano per l’equazione lineare 120x + 81y = 12.
Example 1.7. Non esistono soluzioni intere dell’equazione 6x + 2y = 5, perché 2 = (6, 2)
non divide 5.
1.1. Massimo comun divisore e matrici
Ricordiamo che il minimo comune multiplo di due numeri interi positivi a e b è il più
piccolo naturale k tale che a|k e b|k. È denotato da mcm(a, b). Si vede facilmente che
Sia a > b > 0. Calcoliamo il massimo comun divisore e il minimo comune multiplo con
il metodo matriciale. Consideriamo il sistema lineare
1 0 x a
= (4)
0 1 y b
a
Esso ammette banalmente come unica soluzione il vettore . Sappiamo anche che ogni
b
sistema lineare, che si ottiene dal sistema (4) applicando alla matrice completa
1 0 a
A=
0 1 b
le regole del metodo di eliminazione di Gauss (scambio di due righe; sostituzione di una
riga con la somma della riga stessa
con un’altra moltiplicata per uno scalare r) ammette
a
come unica soluzione il vettore .
b
Se a = bq + r con 0 ≤ r < b, si sottrae alla prima riga q volte la seconda riga e poi si
scambiano la prima e la seconda riga:
1 0 a 1 −q a − bq 1 −q r 0 1 b
⇒ = ⇒
0 1 b 0 1 b 0 1 b 1 −q r
Siccome b > r, si procede in maniera simile fino a quando nella terza colonna della matrice
non appare uno 0 in posizione A23 . Alla fine otterremo una matrice
c d n
e f 0
a
ha come unica soluzione il vettore .
b
c d a ca + db n
= =
e f b ea + f b 0
Allora n = ca + db è il massimo comun divisore di a e b, mentre il modulo |ea| = |f b| è il
minimo comune multiplo.
L’algoritmo è il seguente.
Matrice(nat a, nat b)
{matrix
A; nat q, z}
1 0 a
A := ;
0 1 b
while (A23 6= 0) do //ripetere finché non riduciamo A23 a zero
begin
A13
q := A 23
//quoto della divisione A13 = A23 q + r con resto 0 ≤ r < A23 ;
for i := 1 to 3 do A1i := A1i − qA2i ; //Sottrai q volte la riga 2 dalla riga 1 di A ;
for i := 1 to 3 do z := A1i ; A1i := A2i ; A2i := z; Scambia le righe 1 e 2 della matrice A;
end;
return A13 = A11 a + A2 b; // A23 = 0 implica (a, b) = A13 = A11 a + A12 b
return A21 a = −A22 b; // A23 = 0 implica mcm(a, b) = |A21 a| = | − A22 b|
Example 1.8. Calcoliamo il massimo comun divisore e il minimo comune multiplo di 53
e 71 con il metodo matriciale:
1 0 71 0 1 53 1 −1 18
⇒ ⇒
0 1 53 1 −1 18 −2 3 17
−2 3 17 3 −4 1
⇒ ⇒
3 −4 1 −53 71 0
Quindi,
3 −4 71 3 × 71 − 4 × 53 1
= =
−53 71 53 −53 × 71 + 71 × 53 0
da cui
(71, 53) = 1 = 3 × 71 − 4 × 53; mcm(71, 53) = 71 × 53.
Example 1.9. (134, 36) = (26, 36) = (26, 10) = (6, 10) = (6, 4) = (2, 4) = (2, 0) perché
1 0 134 0 1 36 1 −3 26 −1 4 10
⇒ ⇒ ⇒
0 1 36 1 −3 26 −1 4 10 3 −11 6
3 −11 6 −4 15 4 7 −26 2
⇒ ⇒ ⇒
−4 15 4 7 −26 2 −18 67 0
Quindi,
7 −26 134 7 × 134 − 26 × 36 2
= =
−18 67 36 −18 × 134 + 67 × 36 0
da cui
(134, 36) = 2 = 7 × 134 − 26 × 36; mcm(134, 36) = 67 × 36 = 18 × 134 = 2412.
Lezioni di Aritmetica Modulare 8
Se n è pari e 2i + 2 = n si ha
2
1 = F0 = Fn−2 Fn − Fn−1 .
Se n è dispari e 2i + 1 = n si ha
2
Fn−1 −Fn−2 Fn = 1 = (Fn , Fn−1 ); Fn−1 Fn −Fn Fn−1 = F−1 = 0; mcm(Fn , Fn−1 ) = Fn−1 Fn
2. L’aritmetica dell’orologio
L’aritmetica modulare (o aritmetica dell’orologio) è stata introdotta da Gauss ad inizio
ottocento. Consideriamo un orologio con n > 0 tacche che corrispondono ad i numeri da
0 a n − 1 (Si veda la figura nel caso n = 9). Indichiamo con Zn l’insieme {0, 1, . . . , n −
1}. Scorriamo l’orologio in senso orario partendo da 0. Una mossa +1 consiste nello
spostarsi in senso orario dalla tacca in cui ci troviamo alla tacca successiva. La mossa
+1 corrisponde all’operazione di aggiungere 1. Quando arriviamo al numero n − 1 ed
eseguiamo una ulteriore mossa +1, scopriamo che (n − 1) + 1 = 0 anziché (n − 1) + 1 = n.
Quindi, contrariamente ai numeri naturali, il numero 0 è il successore del numero n − 1
e la funzione determinata dalle mosse +1 definisce una funzione bigettiva dall’insieme
Zn nell’insieme Zn . Viceversa, scorriamo l’orologio in senso antiorario partendo da 0.
Una mossa −1 consiste nello spostarsi in senso antiorario dalla tacca in cui ci troviamo
alla tacca precedente. La mossa −1 corrisponde a sottrarre 1. Quindi 0 − 1 = n − 1
anziché essere indefinito come avviene nell’aritmetica dei numeri naturali. La funzione
determinata dalle mosse −1 definisce una funzione bigettiva dall’insieme Zn nell’insieme
Zn . Essa è la funzione inversa della funzione determinata dalle mosse +1.
Lezioni di Aritmetica Modulare 9
modn (a).
3. Congruenze
Le tacche numerate dell’orologio della sezione precedente sono i rappresentanti delle n
classi di equivalenza di una relazione di equivalenza ≡n definita sugli interi. Nella prossima
definizione introduciamo la relazione ≡n .
Definition 3.1. Sia n > 0. Diciamo che a, b ∈ Z sono congruenti modulo n, e scriviamo
a ≡ b (mod n) oppure a ≡n b,
(ii) a ≡n b ∧ c ≡n d ⇒ ac ≡n bd.
(iii) a ≡n b ⇒ ak ≡n bk .
Proof. Sia modn (a) = modn (b) e modn (c) = modn (d).
(i) Dalla Proposizione 2.1(1) e dall’ipotesi si ha: modn (a + c) = modn (modn (a) +
modn (c)) = modn (modn (b) + modn (d)) = modn (b + d).
(ii) La prova è simile a quella del punto (i).
(iii) La prova è per induzione su k utilizzando (ii).
Lezioni di Aritmetica Modulare 11
• Proprietà commutativa: x +n y = y +n x;
• Elemento neutro: x +n 0 = x = 0 +n x;
• Proprietà commutativa: x ∗n y = y ∗n x;
• Elemento neutro: x ∗n 1 = x = 1 ∗n x;
Il prodotto distribuisce rispetto alla somma:
• x ∗n (y +n z) = (x ∗n y) +n (x ∗n z).
Nei prossimi due lemmi studiamo proprietà di cancellazione e periodicità delle potenze.
Lemma 3.3. Proprietà di cancellazione: ac ≡n bc ∧ (c, n) = 1 ⇒ a ≡n b.
Proof. Dal Lemma 1.7 e dall’ipotesi (c, n) = 1 esistono interi x e y tali che cx + ny = 1.
Siccome cx = n(−y) + 1, allora cx ≡n 1. Dal Lemma 3.2(ii) si ricava acx ≡n a e bcx ≡n b.
Dall’ipotesi ac ≡n bc segue che acx ≡n bcx. Quindi a ≡n b.
Lemma 3.4. Sia n > 0 ed a un intero. La sequenze di potenze modulo n
a0 a1 a2 a3 a4 a5 a6 ...
1 modn (a ) modn (a ) modn (a ) modn (a ) modn (a ) modn (a6 ) . . .
1 2 3 4 5
è periodica a partire da un certo punto in poi: esistono k e p ≤ n tali che ak ≡n ak+rp per
ogni r ≥ 0.
Example 3.1. Calcoliamo le potenze del 3 modulo 7:
30 31 32 33 34 35 36
1 3 2 6 4 5 1
Il periodo è 1 a partire da 23 .
Concludiamo la sezione con una serie di esempi che provano l’utilità della Proposizione
2.1 e dell’aritmetica modulare.
Example 3.3. Vogliamo calcolare qual’è il resto della divisione di 95758 per 5. Siccome
10 è divisibile per 5, si ha che 95758 = 8 + 5 · 10 + 7 · 102 + 5 · 103 + 9 · 104 ≡5 8 ≡5 3.
Example 3.4. Vogliamo calcolare qual’è il resto della divisione di 95758 per 7. Siccome
10 è 3 modulo 7, si ha che
95758 = 8 + 5 · 10 + 7 · 102 + 5 · 103 + 9 · 104
≡7 1 + 5 · 3 + 0 · 32 + 5 · 33 + 2 · 34
≡7 1 + 15 + 5 · 32 · 3 + 2 · 32 · 32
≡7 1+1+5·2·3+2·2·2
≡7 2+2+1=5
Lezioni di Aritmetica Modulare 13
Example 3.5. Vogliamo determinare mod5 (95758 · 37988). Piuttosto che eseguire prima
la moltiplicazione e poi il calcolo del resto della divisione per 5, calcoliamo direttamente
il resto della divisione di 95758 per 5 ed il resto della divisione di 37988 per 5. Si ha:
mod5 (95758) = 3 e mod5 (37988) = 3. Quindi mod5 (95758 · 37988) = 4.
Example 3.6. Calcoliamo 3128 modulo 7. Siccome 33 = 27 ≡7 −1, allora 3128 = 33·42+2 =
(33 )42 · 32 ≡7 (−1)42 · 2 = 2.
a · 2a · 3a · · · · · (p − 1)a ≡p 1 · 2 · 3 · · · · · (p − 1)
da cui
ap−1 (p − 1)! ≡p (p − 1)!
Cancellando (p − 1)!, che non è divisibile per p, da entrambi i membri otteniamo la
conclusione1 .
Corollary 4.1. Se p è primo, allora ap ≡p a.
Example 4.1. Vogliamo calcolare 5236 modulo 13. Applicando il Piccolo Teorema di
Fermat sappiamo che 512 ≡13 1. Quindi
p!
Siccome i!(p−i)! ≡p 0 per ogni 1 ≤ i ≤ p − 1 si ha:
(a + 1)p ≡p ap + 1 ≡p a + 1.
Theorem 4.2. Se p e q sono primi distinti tali che ap ≡q a e aq ≡p a, allora apq ≡pq a.
Proof. Dal Corollario 4.1 si ha (ap )q ≡q ap e (aq )p ≡p aq . Per ipotesi ap ≡q a e aq ≡p a,
quindi apq ≡q a e apq ≡p a. In conclusione p|apq − a e q|apq − a e quindi pq|apq − a.
Example 4.2. Consideriamo p = 11 e q = 31 numeri primi. Allora
211·31 ≡11·31 2
aap−2 ≡p 1.
Chiudiamo questa sezione con una applicazione del Teorema di Wilson allo studio delle
congruenze quadratiche.
Lezioni di Aritmetica Modulare 15
Proof. (⇒) Supponiamo che esista a tale che a2 ≡p −1. Ricordiamo che p−1 è un numero
pari. Dal Piccolo Teorema di Fermat abbiamo:
p−1 p−1
1 ≡p ap−1 = (a2 ) 2 ≡p (−1) 2 .
5. Teorema di Eulero
Leonhard Euler, noto in Italia come Eulero, è stato il più importante matematico del
diciottesimo secolo. Eulero è nato il 15 aprile 1707 a Basilea in Svizzera ed è morto il 18
settembre 1783 a San Pietroburgo in Russia.
Si definisca la seguente funzione di Eulero:
Proof. Si ha: (a, pk ) = 1 sse p 6 | a. Vi sono pk−1 interi tra 1 e pk che sono divisibili per p:
Proposition 5.1. Sia n > 0. L’insieme degli interi relativamente primi con n è chiuso
rispetto all’operazione di moltiplicazione (modulo n) e costituisce un gruppo moltiplicativo.
Lezioni di Aritmetica Modulare 16
Proof. Sia (a, n) = 1 e (b, n) = 1. Allora si vede facilmente che (ab, n) = 1. Dal Lemma
1.7 esistono interi x, y tali che ax + ny = 1. Ne segue che ax ≡n 1 ed x è l’inverso di
a.
Theorem 5.1. (Teorema di Eulero) Se n è un intero positivo e (a, n) = 1, allora aφ(n) ≡n
1.
Proof. Siano b1 , b2 , . . . , bφ(n) i numeri minori di n che sono relativamente primi con n.
Allora ab1 , ab2 , . . . , abφ(n) sono congruenti a b1 , b2 , . . . , bφ(n) in qualche ordine. Ne segue
che
(ab1 ) · (ab2 ) · · · · · (abφ(n) ) = aφ(n) (b1 · b2 · · · · · bφ(n) ) ≡n b1 · b2 · · · · · bφ(n)
Siccome ogni bi è primo con n possiamo dividere per b1 · b2 · · · · · bφ(n) ed ottenere la
conclusione.
Example 5.2. φ(100) = φ(22 · 52 ) = φ(22 )φ(52 ) = 100(1 − 21 )(1 − 15 ) = 40. Dal teorema
di Eulero si ricava
340 ≡100 1.
Quindi, per esempio, 3256 = 36·40+16 = (340 )6 316 ≡100 316 . Infine, 316 = (81)4 ≡100
(−19)4 = (361)2 ≡100 612 ≡100 21.
6. Equazioni modulari
Theorem 6.1. La congruenza lineare ax ≡n b ha una soluzione sse (a, n)|b.
Proof. ax ≡n b sse n|(ax − b) sse ∃q(ax − b = nq) sse ∃q(ax − nq = b). Dal Teorema 1.1
di Bézout otteniamo che ax ≡n b sse (a, n)|b.
Example 6.1. Vogliamo trovare, se esiste, una soluzione all’equazione modulare 124x ≡71
17. Siccome 124 ≡71 53, l’equazione si riduce a 53x ≡71 17. Calcoliamo il massimo comun
divisore di 53 e 71 con il metodo matriciale:
1 0 71 1 −1 18 1 −1 18
⇒ ⇒
0 1 53 0 1 53 −2 3 17
3 −4 1 3 −4 1
⇒ ⇒
−2 3 17 −53 71 0
Ne segue che 3 · 71 − 4 · 53 = 1. Siccome 1 divide 17, l’equazione modulare ha soluzione:
17 = 3 · 71 · 17 − 4 · 53 · 17 ≡71 53(−4 · 17), da cui si ricava x ≡71 −4 · 17 = −68 ≡71 3.
Theorem 6.2. (Teorema cinese del resto) Siano n1 , . . . , nk interi positivi a due a due
relativamente primi (i.e., (ni , nj ) = 1 per i 6= j). Allora il sistema di congruenze lineari
x ≡ a1 (mod n1 )
x ≡ a2 (mod n2 )
... ... ... ...
x ≡ ak (mod nk )
bi = n1 . . . ni−1 ni+1 . . . nk .
x = a1 b 1 x 1 + a2 b 2 x 2 + · · · + ak b k x k
risolve il problema.
Example 6.2. Applichiamo il teorema cinese del resto per risolvere il seguente sistema
di congruenze lineari:
x ≡5 2; x ≡7 6; x ≡11 3.
I numeri 5, 7, 11 sono primi tra loro (a due a due). Quindi, l’unica soluzione modulo
5 × 7 × 11 = 385 è:
x = 2b1 x1 + 6b2 x2 + 3b3 x3
dove
b1 = 7 · 11 = 77; b2 = 5 · 11 = 55; b3 = 5 · 7 = 35,
e x1 , x2 , x3 sono le soluzioni delle congruenze lineari
Si ha x1 = 3, x2 = 6 e x3 = 6. In conclusione,
p, q, n, e
• n = p · q;
I numeri p e q costituiscono la chiave privata nota solo all’utente Pippo, mentre i numeri
n ed e costituiscono la chiave pubblica, utilizzata per inviare messaggi a Pippo. I numeri
n ed e possono, per esempio, comparire nella home page del Signor Pippo.
Lezioni di Aritmetica Modulare 19
N d ≡n (M e )d ≡n M ed .