CTX - 05 - Funzione di Eulero


1 Informazioni Lezione

Data: [2018-03-21 mer]


In questa lezione abbiamo introdotto la classe delle funzioni moltiplicative, con un particolare esempio per la funzione di Eulero.

2 Funzioni Moltiplicative

Dato \(n \in \mathbb{N} \setminus \{0\}\) consideriamo

\[\begin{split} \mathbb{Z}_n^* &= \{[x]_n \in \mathbb{Z}_n : [x]_n \text{ è invertibile } \} \\ &= \{x \in \mathbb{Z}: 1 \leq x < n, \,\,\,\, MCD(x, n) = 1 \} \end{split}\]

In questa lezione siamo interessati a calcolare l'ordine di \(\mathbb{Z}_n^*\), inteso come il numero di elementi dell'insieme. A tale fine definiamo la famosa funzione di Eulero \(\varphi: \mathbb{N} \to \mathbb{N}\), data da

\[\varphi(n) = \begin{cases} 1 \,\,\,&,\,\,\,\ n = 1 \\ ord(Z_n^*) \,\,\,&,\,\,\,\ n \leq 2 \\ \end{cases}\]

La funzione di Eulero fa parte di una più ampia classe di funzioni, che andiamo di seguito a definire.


Definizione: Sia \(f\) una funzione aritmetica, \(f: \mathbb{N} \to \mathbb{N}\). \(f\) viene chiamata moltiplicativa se, dati \(n, m \in \mathbb{N}\) t.c. \(MCD(n, m) = 1\), allora

\[f(nm) = f(n)f(m)\]


Andiamo adesso a presentare un lemma utile per studiare la funzione di Eulero.

Lemma: Sia \(f\) una funzione moltiplicativa. Allora la funzione \(F(n)\) definita da

\[F(n) := \sum\limits_{0 < d \,\,|\,\, n} f(d)\]

è una funzione moltiplicativa.

Dimostrazione: Siano \(n, m \in \mathbb{N}\) tali che \(MCD(n, m) = 1\).

Notiamo che se \(d \,\,|\,\, nm\), allora esistono degli unici \(\delta_1 \delta_2 \in \mathbb{N}\) tali che

\[\begin{cases} d = \delta_1 \delta_2 \\ \delta_1 \,\,|\,\, n \\ \delta_2 \,\,|\,\, m \\ \end{cases}\]

Questo segue dal fatto che \(n\) e \(m\) non hanno nessun fattore in comune. Infatti, se \(d\) divide \(nm\), allora possiamo spezzare i fattori di \(d\) contenuti in \(nm\) in due parti: quelli contenuti in \(n\) e quelli contenuti in \(m\). Ma allora, possiamo scrivere \(F(n)\) nel seguente modo

\[\begin{split} F(nm) = \sum_{0 < d \,\,|\,\, nm} f(d) = \sum\limits_{\substack{ 0 < \delta_1 \,\,|\,\, n, \\ 0 < \delta_2 \,\,|\,\, m: \\ \delta_1 \delta_2 = d}} f(\delta_1 \delta_2) = \sum\limits_{\substack{ 0 < \delta_1 | n, \\ 0 < \delta_2 | m: \\ \delta_1 \delta_2 = d}} f(\delta_1) f(\delta_2) = \sum\limits_{\substack{ 0 < \delta_1 | n }} f(\delta_1) \sum\limits_{\substack{ 0 < \delta_2 | m }} f(\delta_2) = F(n)F(m) \end{split}\]

\[\tag*{$\blacksquare$}\]


2.1 La funzione di Eulero è Moltiplicativa

Andiamo adesso a dimostrare che la funzione di Eulero è una funzione moltiplicativa. Infatti, siamo \(n, m\) due naturali tali che \(MCD(n, m) = 1\) e consideriamo la seguente applicazione

\[f: \mathbb{Z}_{nm} \to \mathbb{Z}_n \times \mathbb{Z}_m\]

definita da

\[f(x) := (x \mod n, \,\,\,x \mod m) \quad \forall x \in \mathbb{Z}_{nm}\]

Notiamo che tale applicazione è ben definita, nel senso che ad ogni classe di \(\mathbb{Z}_{nm}\) viene associata una sola classe del codominio. Infatti, \(x \equiv y \mod nm\) se e solo se \(x - y = \alpha nm\). Ma quindi \(x \equiv y \mod n\) e \(x \equiv y \mod m\). Detto altrimenti, abbiamo dimostrato che, cambiando rappresentante della classe del dominio, non cambia la classe del codominio associata. Ovvero \(f\) associa ad ogni classe del dominio una classe del codominio, in modo indipendente dai rappresentati scelti.

Osserviamo ora che \(f\) è surriettiva. Infatti, sia \((a, b)\) un elemento di \(\mathbb{Z}_n \times \mathbb{Z}_m\). Vogliamo trovare un \(x \in \mathbb{Z}_{nm}\) tale che

\[\begin{cases} x \equiv a & (\mod n) \\ x \equiv b & (\mod m) \\ \end{cases}\]

Dato che \(MCD(n, m) = 1\) possiamo utilizzare il TCDR per trovare la soluzione \(x^*\). Tale soluzione è poi unica modulo \(nm\). Mettendo tutto insieme, concludiamo che \(x^*\) è l'unico elemento di \(\mathbb{Z}_{nm}\) tale che \(f(x^*) = (a, b)\). Da questo segue che \(f\) non solo è suriettiva, ma è anche iniettiva, e quindi è biiettiva.

Avendo concluso che \(f\) è biiettiva sappiamo che \(Z_{nm}\) e \(Z_n \times Z_m\) hanno lo stesso numero di elementi. Ma questo equivale a dire che

\[\varphi(nm) = \varphi(n)\varphi(m)\]

il che dimostra che la funzione di Eulero è una funzione moltiplicativa.

Concludiamo osservando che \(f\) è un omomorfismo tra gruppi, e, essendo biiettivo, è in realtà un isomorfismo tra gruppi.


2.2 Calcolo di \(\varphi(n)\)

Visto che \(\varphi\) è una funzione moltiplicativa, l'idea è quella di spezzare il calcolo di \(\varphi(n)\) in vari casi:


2.2.1 Caso 1: \(n = p\)

Sia \(n = p\), con \(p\) primo.

In questo caso banalmente si ha \(\varphi(p) = p - 1\).



2.2.2 Caso 2: \(n = p^a\)

Sia \(n = p^a\), con \(p\) primo e \(a > 1\) naturale.

In questo caso si considerano tutti gli interi da \(1\) e \(p^a\) e tra questi si eliminano tutti quelli che non sono coprimi con \(p^a\). Essendo \(p\) primo però, gli unici fattori che un numero $1 b < p^a $ può avere in comune con \(p^a\) sono della forma \(p^c\) con \(1 \leq c < a\). In poche parole, dobbiamo eliminare tutti gli elementi che hanno, nella loro fattorizzazione, almeno un \(p\). Questi sono chiaramente tutti i multipli di \(p\). Sapendo poi che ogni \(p\) numeri distinti abbiamo \(1\) elemento che non è coprimo con \(p\), troviamo la seguente espressione

\[\varphi(p^a) = p^a - \frac{p^a}{p} = p^a - p^{a-1}\]



2.2.3 Caso 3: \(n = p_1^{a_1}p_2^{a_2}...p_h^{a_h}\)

Utilizzando i risultati precedenti, più il fatto che \(\varphi\) è una funzione moltiplicativa, otteniamo

\[\begin{split} \varphi(n) = \varphi(p_1^{a_1}p_2^{a_2}...p_h^{a_h}) = \prod_{i = 1}^h \varphi(p_i^{a_i}) &= \prod_{i = 1}^h p_i^{a_i} - p_i^{a_i -1} \\ &= \prod_{i = 1}^h p_i^{a_i}\Big(1 - \frac{1}{p_i}\Big) \\ &= p_1^{a_1}p_2^{a_2}...p_h^{a_h} \prod_{i = 1}^h \Big(1 - \frac{1}{p_i}\Big) \\ &= n \prod_{\substack{\text{$p$ primo}: \\ p \,\,|\,\, n}} \Big(1 - \frac{1}{p}\Big) \end{split}\]


2.2.4 Formula Generale

La formula generale è quindi la seguente

\[\varphi(n) = \prod\limits_{{\substack{\text{$p$ primo}: \\ p\,\,|\,\,n}}} \Big(1 - \frac{1}{p}\Big)\]


2.3 Teorema \(\sum_{d | n} \varphi(d) = n\)

Andiamo adesso a dimostrare la seguente proprietà della funzione di eulero.

\[\sum_{d \,\,|\,\, n} \varphi(d) = n \,\,\,\, \forall n \in \mathbb{N}\]

Dimostrazione: Ricordiamo che dal lemma dimostrato prima, dato che \(\varphi\) è moltiplicativa, allora anche \(F(n) := \sum_{d | n} \varphi(d)\) è moltiplicatica.

Andiamo a vedere i vari casi, a seconda della fattorizzazione di \(n\):

  • Caso \(n = p\) con \(p\) primo, allora banalmente \(F(p) = p\).

  • Caso \(n = p^a\) con \(p\) primo, allora \(F(p^a) = \sum_{d | p^a} \varphi(d)\).

    Notiamo in questo caso che gli unici interi che dividono \(p^a\) sono a loro volta potenze di \(p\), ovvero sono numeri della forma \(p^b\) con \(0 \leq b \leq a\). Quindi

    \[\begin{split} F(p^a) = \sum_{d | p^a} \varphi(d) &= \sum_{b = 0}^a \varphi(p^b) \\ &= \varphi(1) + \sum_{b = 1}^a{p^b - p^{b-1}} \\ &= 1 + \Big[(p^a - p^{a-1}) + (p^{a-1} - p^{a-2}) + ... + (p - 1)\Big] \\ &= 1 + \Big[p^a - 1\Big] \\ &= p^a \\ \end{split}\]

  • Caso \(n = p_1^{a_1}p_2^{a_2}....p_h^{a_h}\) con \(p_1,...,p_h\) primo.

    \[\begin{split} F(n) &= F(p_1^{a_1}p_2^{a_2}....p_h^{a_h}) \\ &= F(p_1^{a_1})F(p_2^{a_2})...F(p_h^{a_h}) \\ &= p_1^{a_1}p_2^{a_2}...p_h^{a_h} \\ &= n \end{split}\]


3 Teorema di Eulero

Teorema: Siano \(a, n\) due numeri naturali tali che \(MCD(a, n) = 1\). Allora

\[a^{\varphi(n)} \equiv 1 \mod n\]


3.1 Dimostrazione

Procediamo per casi.


3.1.1 Caso 1: \(n = p^a\)

Il caso \(n = p^{a}\) verrà dimostrato per induzione su \(a \in \mathbb{N}\).

Come caso base troviamo \(a = 1\), che risulta essere vero per il piccolo teorema di Fermat.

Come passo induttivo assumiamo essere vero il caso \(a - 1\) e dimostriamo il caso \(a\). Sia \(b\) un intero tale che \(MCD(b, p^a) = 1\). Noi vogliamo dimostrare che \(b^{\varphi(p^a)} \equiv 1 \mod p^a\). Notiamo come prima cosa che per come è stato scelto \(b\) abbiamo che \(MCD(b, p^{a-1}) = 1\), e quindi possiamo utilizzare l'ipotesi induttiva per ottenere

\[b^{\varphi(p^{a-1})} \equiv 1 \mod p^{a-1}\]

Sappiamo inoltre che \(\varphi(p^{a-1}) = p^{a-1} - p^{a-2}\). Troviamo quindi la seguente relazione, con \(c \in \mathbb{Z}\)

\[b^{p^{a-1} - p^{a-2}} = 1 + Cp^{a-1}\]

Elevando entrambi i lati alla \(p\) otteniamo

\[b^{\varphi(p^a)} = b^{p^a - p^{a-1}} = (b^{p^{a-1} - b^{a-2}})^p = (1 + Cp^{a-1})^p\]

Espandendo il lato destro con il binomio di Netwon troviamo

\[(1 + Cp^{a-1})^p = 1 + \binom{p}{1}Cp^{a-1} + \binom{p}{2}(Cp^{a-1})^2 + ...\]

in particolare, oltre al primo termine, i termini restanti sono tutti multipli di \(p^a\). In altre parole,

\[(1 + Cp^{a-1})^p \equiv 1 \mod p^a \iff b^{\varphi(p^a)} \equiv 1 \mod p^a\]

il che dimostra il passo induttivo.

\[\tag*{$\checkmark$}\]



3.1.2 Caso 2: \(n = p_1^{m_1}p_2^{m_2}...p_h^{m_h}\)

Il caso \(n = p_1^{m_1}p_2^{m_2}...p_h^{m_h}\) verrà invece dimostrato direttamente.

Notiamo subito che \(\varphi(n) = \prod_{i = 1}^h \varphi(p_i^{m_i})\). Sia \(b\) tale che \(MCD(b, n) = 1\). Allora \(MCD(b, p_i^{m_i}) = 1\) per ogni \(i = 1,..., h\), e, dal caso appena dimostrato, abbiamo che

\[b^{\varphi(p_i^{m_i})} \equiv 1 \mod p_i^{m_i} \quad i = 1, ..., h\]

il che implica, dato che \(\varphi(p_i^{m_i}) \mid \varphi(n)\), la seguente relazione

\[b^{\varphi(n)} \equiv 1 \mod p_i^{m_i}\]

ovvero che \(p_i^{m_i} \mid b^{\varphi(n)} - 1\) per ogni \(i = 1, ..., h\). Dato che gli \(p_i^{m_i}\) sono coprimi tra loro, necessariamente segue che

\[n = p_1^{m_1}p_2^{m_2}...p_h^{m_h} \mid b^{\varphi(n)} - 1\]

il che equivale a dire che

\[b^{\varphi(n)} \equiv 1 \mod n\]

\[\tag*{$\blacksquare$}\]



3.2 Corollario

Andiamo adesso a dimostrare un interessante corollario.

Corollario: Siano \(a, m\) due numeri naturali tali che \(MCD(a, m) = 1\). Allora

\[n' \equiv n \mod{\varphi(n)} \implies a^{n'} \equiv a^n \mod n\]

Dimostrazione: Infatti, se \(n \equiv n' \mod{\varphi(n)}\), allora \(\exists \,\, q \in Z\) tale che \(n = n' + q\varphi(n)\). Ma allora otteniamo

\[\begin{split} a^n &\equiv a^{n' + q\varphi(n)} \mod n \\ &\equiv a^{n'}(a^{\varphi(n)})^q \mod n \\ &\equiv a^{n'}(1)^q \mod n \\ &\equiv a^{n'} \mod n \\ \end{split}\]

\[\tag*{$\blacksquare$}\]

Come avevamo menzionato per il piccolo teorema di Fermat, notiamo che il teorema di Eulero non ci calcola l'ordine degli elementi di un gruppo, ed è quindi un risultato piuttosto rozzo se visto negli interessi della teoria dei gruppi.