L'Algoritmo di Euclide
Il Massimo Comun Divisore (MCD) di due numeri è il più grande numero che divide entrambi i numeri. Ad esempio, il MCD di 30 e 45 è 15, poiché 15 è il più grande numero che divide sia 30 che 45.
Abbiamo visto nella lezione precedente che un metodo per calcolare il MCD di due numeri naturali è quello di scomporli in fattori primi e poi moltiplicare i fattori comuni, elevati alla potenza minima con cui compaiono in entrambe le scomposizioni.
Tuttavia, esiste un altro metodo molto più veloce e antico per il calcolo del MCD, che prende il nome di Algoritmo di Euclide. Questo algoritmo è stato scoperto dal matematico greco Euclide nel III secolo a.C che lo descrisse nella sua opera: Elementi, ed è ancora oggi uno dei metodi più utilizzati per calcolare il MCD.
Teorema della divisibilità della differenza
Prima di poter descrivere l'algoritmo e capirne il funzionamento, dobbiamo introdurre un teorema fondamentale che ci permette di calcolare il MCD in modo più semplice. Tale teorema afferma che:
Teorema della divisibilità della differenza
Dati due numeri naturali:
tali che
Dimostriamo il teorema.
Sappiamo che:
Inoltre sappiamo che
Pertanto, dato che
Dove
Allo stesso modo, dato che
Dove
Ora, consideriamo la differenza
Applicando la proprietà distributiva all'inverso, otteniamo:
Se consideriamo che
quindi
Vediamo ora un esempio pratico per capire meglio il teorema.
Supponiamo di avere i numeri
Quindi,
Ora verifichiamo se
Quindi,
Un'importante conseguenza di questo teorema, che sfrutteremo in questa lezione, è:
MCD e la differenza tra due numeri
Dati due numeri naturali
Pertanto ne consegue che:
Un'altra proprietà del MCD che sfrutteremo è:
MCD di un numero e se stesso
Dato un numero naturale
MCD con Sottrazioni Successive
A partire dal teorema della divisibilità della differenza, possiamo escogitare un primo metodo per calcolare il MCD di due numeri naturali che prende il nome di MCD con Sottrazioni Successive. Non si tratta ancora dell'algoritmo di Euclide, ma è un metodo che sfrutta il teorema della divisibilità della differenza per calcolare il MCD in modo più semplice.
Per capire, consideriamo due numeri naturali
Sappiamo che se
. La conseguenza è che è il MCD di e . . In questo caso, consideriamo allora la differenza tra e . Essi avranno sicuramente un divisore in comune, quindi possiamo riapplicare il procedimento.
Per cui, il metodo consiste in:
MCD con Sottrazioni Successive
Dati due numeri naturali
- Si calcola la differenza tra i due numeri
; - Se
, allora il MCD è e il procedimento termina; - Se
, si effettuano i seguenti passi: ; ossia si pone uguale al numero maggiore tra e ; ; ossia si pone uguale al numero minore tra e ; - Si torna al passo 1.
Chiariamo con un esempio pratico.
Calcoliamo il MCD tra
-
Calcoliamo la differenza tra i due numeri:
-
, quindi procediamo con i passi successivi: ; ; - Rieseguiamo il procedimento:
-
Calcoliamo la differenza tra i due numeri:
-
, quindi procediamo con i passi successivi: ; ; - Rieseguiamo il procedimento:
-
Calcoliamo la differenza tra i due numeri:
-
, quindi procediamo con i passi successivi: ; ; - Rieseguiamo il procedimento:
-
Calcoliamo la differenza tra i due numeri:
-
, quindi procediamo con i passi successivi: ; ; - Rieseguiamo il procedimento:
-
Calcoliamo la differenza tra i due numeri:
-
, quindi il MCD è e il procedimento termina.
L'intero procedimento dell'esempio è riassunto nella figura qui sotto:
Osservando bene il procedimento, quello che abbiamo fatto è stato applicare la seguente catena di uguaglianze:
Facciamo due importanti osservazioni sull'esempio:
-
Abbiamo eseguito tre sottrazioni successive con 36 come minuendo:
-
Analogamente, abbiamo eseguito due sottrazioni successive con 12 come minuendo:
Nel primo caso si trattava sostanzialmente di dividere 120 per 36 e prenderne il resto che è 12. Nel secondo caso, si trattava di dividere 36 per 12 e prenderne il resto che è 0.
Sfruttando questa osservazione possiamo semplificare il procedimento e arrivare a un metodo più veloce per calcolare il MCD.
Infatti, possiamo enunciare il seguente teorema:
MCD e Resto della Divisione
Dati due numeri naturali
Possiamo verificare facilmente che il teorema è vero con un esempio:
Prendiamo di nuovo i numeri
Dividiamo
Quindi, il resto della divisione tra
Quindi,
Sfruttando questo teorema, e le osservazioni fatte in precedenza, arriviamo all'algoritmo di Euclide che sfrutta il resto della divisione tra i due numeri per calcolare il MCD in modo più veloce.
Algoritmo di Euclide
L'Algoritmo di Euclide sfrutta le divisioni successive per calcolare il MCD di due numeri naturali:
Algoritmo di Euclide
Dati due numeri naturali
-
Si calcola il resto della divisione tra
e : -
Se
, allora il MCD è e il procedimento termina; -
Se
, si effettuano i seguenti passi: ; ; - Si torna al passo 1.
Nel caso in cui
Applichiamo ora l'algoritmo di Euclide all'esempio precedente per calcolare il MCD tra
-
Calcoliamo il resto della divisione tra
e : -
, quindi procediamo con i passi successivi: ; ; - Rieseguiamo il procedimento:
-
Calcoliamo il resto della divisione tra
e : -
, quindi il MCD è e il procedimento termina.
Come si può notare, l'algoritmo di Euclide è molto più veloce rispetto al metodo delle sottrazioni successive. Infatti, in questo caso abbiamo eseguito solo due divisioni invece di cinque sottrazioni.
Anche in questo caso, l'intero procedimento sfrutta la seguente catena di uguaglianze:
Algoritmo di Euclide in Pseudocodice
Proviamo ad implementare l'algoritmo di Euclide in pseudocodice. L'algoritmo è molto semplice e può essere implementato in qualsiasi linguaggio di programmazione. Ecco un esempio di implementazione in pseudocodice:
L'algoritmo è suddiviso in due parti:
- La prima parte controlla se effettivamente il primo dei due numeri,
, è maggiore del secondo, . Se non lo è, i due numeri vengono scambiati; - La seconda parte è l'algoritmo di Euclide vero e proprio. Attraverso un ciclo
while
, si calcola il resto della divisione trae e si verifica se il resto è uguale a zero. Se lo è, il MCD è e il ciclo termina. Se non lo è, i valori di e vengono aggiornati e il ciclo continua fino a quando non si trova il MCD.