Scomporre in fattori primi due numeri grandi può essere lento. Euclide (negli Elementi, Libro VII) descrive un metodo per il MCD che non richiede alcuna scomposizione: solo divisioni con resto. È uno degli algoritmi più antichi ancora in uso.

Metodo — algoritmo di Euclide (divisioni successive)

Per calcolare MCD(a,b)\text{MCD}(a,b) con ab>0a\ge b>0:

  1. dividi aa per bb: a=qb+ra = q\cdot b + r, con 0r<b0\le r < b;
  2. se r=0r=0, il MCD è bb;
  3. altrimenti ripeti con bb e rr al posto di aa e bb.

Il MCD è l’ultimo resto non nullo (cioè l’ultimo divisore).

L’idea è che MCD(a,b)=MCD(b,r)\text{MCD}(a,b) = \text{MCD}(b,r): ogni divisore comune di aa e bb divide anche r=aqbr = a - q b, e viceversa. Sostituendo la coppia con una “più piccola” i divisori comuni non cambiano, ma i numeri calano fino a un resto nullo.

Esempio: MCD(48, 32)

48=132+16,32=216+0.48 = 1\cdot 32 + 16, \qquad 32 = 2\cdot 16 + 0.

L’ultimo resto non nullo è 1616: dunque MCD(48,32)=16\text{MCD}(48,32)=16 — lo stesso valore trovato con le scomposizioni.

Esempio: MCD(1071, 462)

1071=2462+147,462=3147+21,147=721+0.1071 = 2\cdot 462 + 147, \quad 462 = 3\cdot 147 + 21, \quad 147 = 7\cdot 21 + 0.

Ultimo resto non nullo: 2121. Quindi MCD(1071,462)=21\text{MCD}(1071,462)=21. Provare a scomporre 10711071 e 462462 in fattori primi sarebbe stato molto più laborioso.

La versione "a sottrazioni" di Euclide

Nella forma originale Euclide non usava la divisione ma sottrazioni ripetute: si sottrae il più piccolo dal più grande finché i due diventano uguali, e quel valore è il MCD. La divisione con resto è semplicemente “tante sottrazioni in un colpo solo”.

Collegamenti

Argomenti: Numeri e operazioni
Concetti: Algoritmo di Euclide · Massimo comun divisore (MCD)
Competenze: Scomporre
Persone: Euclide