Come attivare l'algoritmo euclideo. Algoritmo euclideo: trovare il massimo comun divisore. Trovare il MCD dei numeri negativi

Come attivare l'algoritmo euclideo. Algoritmo euclideo: trovare il massimo comun divisore. Trovare il MCD dei numeri negativi

Algoritmo euclideo per trovare il MCD (massimo comun divisore)

Dati due numeri interi non negativi e . È necessario trovare il loro massimo comun divisore, cioè il numero più grande che è divisore di entrambi , e . SU lingua inglese"massimo comun divisore" si scrive "massimo comun divisore", e la sua designazione comune è:

(qui il simbolo "" denota divisibilità, cioè "" denota "divide")

Quando uno dei numeri è uguale a zero e l'altro è diverso da zero, il loro massimo comun divisore, per definizione, sarà questo secondo numero. Quando entrambi i numeri sono uguali a zero, il risultato non è definito (va bene qualsiasi numero infinitamente grande), in questo caso impostiamo il massimo comun divisore su zero. Pertanto, possiamo parlare della seguente regola: se uno dei numeri è uguale a zero, il loro massimo comun divisore è uguale al secondo numero.

Algoritmo di Euclide, discusso di seguito, risolve il problema di trovare il massimo comun divisore di due numeri e per .

Questo algoritmo fu descritto per la prima volta negli Elementi di Euclide (circa 300 aC), anche se è del tutto possibile che questo algoritmo abbia origini precedenti.

Algoritmo

L'algoritmo in sé è estremamente semplice ed è descritto dalla seguente formula:

Implementazione

int mcd (int a, int b) ( if (b == 0 ) restituisce a; altrimenti restituisce mcd (b, a % b) ; )

Utilizzando l'operatore condizionale ternario del C++, l'algoritmo può essere scritto ancora più brevemente:

int mcd (int a, int b) ( return b ? gcd (b, a % b) : a; )

Infine, presentiamo la forma non ricorsiva dell’algoritmo:

int mcd (int a, int b) ( while (b) ( a % = b; scambia (a, b) ; ) return a; )

Prova di correttezza

Innanzitutto, si noti che con ogni iterazione dell'algoritmo euclideo, il suo secondo argomento diminuisce rigorosamente, quindi, poiché non è negativo, allora l'algoritmo euclideo completa sempre.

Per prova di correttezza dobbiamo dimostrarlo per qualsiasi >.

Mostriamo che la quantità a sinistra dell'equazione è divisa per quella reale a destra, e la quantità a destra è divisa per quella a sinistra. Ovviamente, ciò significherà che i lati sinistro e destro coincidono, il che dimostrerà la correttezza dell'algoritmo euclideo.

Denotiamo . Quindi, per definizione, e .

Ma da qui segue:

Quindi, ricordando l'affermazione, otteniamo il sistema:

Usiamo ora il seguente semplice fatto: se per circa tre numeri: e , allora vale anche: . Nella nostra situazione otteniamo:

Oppure, sostituendo la sua definizione come , otteniamo:

Quindi abbiamo fatto metà della dimostrazione: abbiamo dimostrato che il lato sinistro divide il lato destro. La seconda metà della dimostrazione si svolge in modo simile.

Ore lavorative

Il tempo di esecuzione dell'algoritmo è stimato Il teorema di Lamé, che stabilisce una sorprendente connessione tra l'algoritmo euclideo e la sequenza di Fibonacci:

Se > e per alcuni , l'algoritmo euclideo non eseguirà più chiamate ricorsive.

Consideriamo due metodi principali per trovare il MCD in due modi principali: utilizzando l'algoritmo euclideo e fattorizzando in fattori primi. Applichiamo entrambi i metodi per due, tre o più numeri.

Algoritmo euclideo per trovare il MCD

L'algoritmo euclideo semplifica il calcolo del massimo comun divisore di due numeri positivi. Abbiamo presentato le formulazioni e la dimostrazione dell’algoritmo di Euclide nella sezione “Massimo comun divisore: determinante, esempi”.

L'essenza dell'algoritmo è eseguire in sequenza la divisione con resto, durante la quale si ottengono una serie di uguaglianze della forma:

un = b q 1 + r 1 , 0< r 1 < b b = r 1 · q 2 + r 2 , 0 < r 2 < r 1 r 1 = r 2 · q 3 + r 3 , 0 < r 3 < r 2 r 2 = r 3 · q 4 + r 4 , 0 < r 4 < r 3 ⋮ r k - 2 = r k - 1 · q k + r k , 0 < r k < r k - 1 r k - 1 = r k · q k + 1

Potremo finire la divisione quando r k + 1 = 0, in cui r k = MCD (a , b).

Esempio 1

64 E 48 .

Soluzione

Introduciamo le seguenti notazioni: a = 64, b = 48.

Sulla base dell'algoritmo euclideo, eseguiremo la divisione 64 SU 48 .

Otteniamo 1 e il resto 16. Risulta che q 1 = 1, r 1 = 16.

Il secondo passo è dividere 48 entro le 16 ne otteniamo 3. Questo è q2 = 3, UN r2 = 0 . Pertanto, il numero 16 è il massimo comun divisore per i numeri della condizione.

Risposta: MCD (64, 48) = 16.

Esempio 2

Qual è il MCD dei numeri? 111 E 432 ?

Soluzione

Dividiamo 432 SU 111 . Secondo l'algoritmo euclideo otteniamo la catena di uguaglianze 432 = 111 · 3 + 99, 111 = 99 · 1 + 12, 99 = 12 · 8 + 3, 12 = 3 · 4.

Pertanto, il massimo comun divisore di numeri è 111 E 432 – questo è 3.

Risposta: MCD (111, 432) = 3.

Esempio 3

Trova il massimo comun divisore dei numeri 661 e 113.

Soluzione

Dividiamo in sequenza i numeri e otteniamo MCD (661 , 113) = 1 . Ciò significa che 661 e 113 sono numeri relativamente primi. Potremmo capirlo prima di iniziare il calcolo se consultassimo una tabella di numeri primi.

Risposta: MCD (661, 113) = 1.

Trovare il MCD fattorizzando i numeri in fattori primi

Per trovare il massimo comun divisore di due numeri utilizzando il metodo della fattorizzazione, è necessario moltiplicare tutti i fattori primi che si ottengono fattorizzando questi due numeri e che sono ad essi comuni.

Esempio 4

Se scomponiamo in fattori primi i numeri 220 e 600 otteniamo due prodotti: 220 = 2 2 5 11 E 600 = 2 2 2 3 5 5. I fattori comuni in questi due prodotti sono 2, 2 e 5. Ciò significa che GCD (220, 600) = 2 2 5 = 20.

Esempio 5

Trova il massimo comun divisore di numeri 72 E 96 .

Soluzione

Trova tutti i fattori primi dei numeri 72 E 96 :

72 36 18 9 3 1 2 2 2 3 3

96 48 24 12 6 3 1 2 2 2 2 2 3

I fattori primi comuni a due numeri sono 2, 2, 2 e 3. Ciò significa che GCD (72, 96) = 2 2 2 3 = 24.

Risposta: MCD (72, 96) = 24.

La regola per trovare il massimo comun divisore di due numeri si basa sulle proprietà del massimo comun divisore, secondo cui mcd (m a 1, m b 1) = m gcd (a 1, b 1), dove m è un qualsiasi intero positivo .

Trovare il MCD di tre o più numeri

Indipendentemente dal numero di numeri di cui dobbiamo trovare il MCD, seguiremo lo stesso algoritmo, che consiste nel trovare in sequenza il MCD di due numeri. Questo algoritmo si basa sull'applicazione del seguente teorema: MCD di più numeri un 1 , un 2 , ... , un k uguale al numero non so, che si trova calcolando sequenzialmente il MCD (a 1 , a 2) = d 2, MCD (d 2 , a 3) = d 3 , MCD (d 3 , a 4) = d 4 , … , MCD (d k - 1 , a k) = d k .

Esempio 6

Trova il massimo comun divisore di quattro numeri 78, 294, 570 e 36 .

Soluzione

Introduciamo la notazione: a 1 = 78, a 2 = 294, a 3 = 570, a 4 = 36.

Cominciamo trovando il mcd dei numeri 78 e 294: d2= GCD (78 , 294) = 6 .

Ora iniziamo a trovare d 3 = MCD (d 2 , a 3) = MCD (6, 570). Secondo l'algoritmo di Euclide 570 = 6 95. Significa che d3= GCD (6 , 570) = 6 .

Troviamo d 4 = MCD (d 3 , a 4) = MCD (6, 36). 36 divisibile per 6 senza resto. Questo ci permette di ottenere d4 = GCD (6 , 36) = 6 .

d4 = 6, cioè MCD (78 , 294 , 570 , 36) = 6 .

Risposta:

Ora diamo un'occhiata a un altro modo per calcolare il MCD per questi e altri numeri. Possiamo trovare il MCD moltiplicando tutti i fattori primi comuni dei numeri.

Esempio 7

Calcola il MCD dei numeri 78, 294, 570 e 36 .

Soluzione

Scomponiamo questi numeri in fattori primi: 78 = 2 3 13, 294 = 2 3 7 7, 570 = 2 3 5 19, 36 = 2 2 3 3.

Per tutti e quattro i numeri, i fattori primi comuni saranno i numeri 2 e 3.

Si scopre che GCD (78, 294, 570, 36) = 2 3 = 6.

Risposta: MCD (78, 294, 570, 36) = 6.

Trovare il MCD dei numeri negativi

Se abbiamo a che fare con numeri negativi, allora possiamo usare i moduli di questi numeri per trovare il massimo comun divisore. Possiamo farlo conoscendo la proprietà dei numeri con segni opposti: i numeri N E - N hanno gli stessi divisori.

Esempio 8

Trova il mcd degli interi negativi − 231 E − 140 .

Soluzione

Per eseguire i calcoli, prendiamo i moduli dei numeri indicati nella condizione. Questi saranno i numeri 231 e 140. Scriviamolo brevemente: MCD (− 231 , − 140) = MCD (231, 140) . Ora applichiamo l'algoritmo euclideo per trovare i fattori primi di due numeri: 231 = 140 · 1 + 91 ; 140 = 91 1 + 49 ; 91 = 49 · 1 + 42 ; 49 = 42 1 + 7 e 42 = 76. Otteniamo che MCD (231, 140) = 7 .

E dal GCD (− 231 , − 140) = GCD (231 , 140) , quindi MCD di numeri − 231 E − 140 equivale 7 .

Risposta: MCD (-231, -140) = 7.

Esempio 9

Determina il mcd di tre numeri − 585, 81 e − 189 .

Soluzione

Sostituiamo i numeri negativi nell'elenco sopra con i loro valori assoluti, otteniamo MCD (− 585 , 81 , − 189) = GCD (585 , 81 , 189) . Quindi fattorizziamo tutti questi numeri in fattori primi: 585 = 3 3 5 13, 81 = 3 3 3 3 e 189 = 3 3 3 7. Comuni ai tre numeri sono i fattori primi 3 e 3. Risulta che MCD (585, 81, 189) = MCD (− 585, 81, − 189) = 9.

Risposta: MCD (-585, 81, -189) = 9.

Se noti un errore nel testo, evidenzialo e premi Ctrl+Invio

La massima linea di divisione comune di due numeri regionali $a$ e $b$ - $MCD(a, b)$ - è il numero più grande , su alcuni numeri $a$ e $b$ vengono divisi senza resto.

Per trovare $MCD(a, b)$ puoi procedere nel seguente modo naturale: scomporre entrambi i numeri la per potenze di numeri primi: $a = 2^(\alpha_1) \cdot 3^(\alpha_2) \cdot \ldots \cdot p^(\alpha_n)_n$ , $b = 2 ^(\beta_1) \cdot 3^(\beta_2) \cdot \ldots \cdot p^(\beta_n)_n$ , ($\alpha_k$ e $ \beta_k$ può essere uguale a zero). Quindi $$GCD(a, b) = 2^(\min(\alpha_1, \beta_1)) \cdot 3^(\min(\alpha_2, \beta_2)) \cdot \ldots \cdot p^(\ min( \alpha_n, \beta_n))_n.$$ Ad esempio, per trovare il valore più comune di $2625$ e $8100 $ otteniamo: $2625 = 2^0 \cdot 3^1 \cdot 5^3 \cdot 7^1, 8100 = 2^2 \cdot 3^4 \cdot 5^2 \cdot 7^0$, significa $GCD(2625, 8100) = 2^0 \cdot 3^1 \cdot 5^2 \cdot 7^0 = 75$.

Lo svantaggio essenziale di questo metodo è che dividere un gran numero in molteplicità semplici non è così semplice come un centinaio, o meglio, non così veloce.

Euclide nel 7° libro “Inizio” descrive l’algoritmo della “misura comune di due numeri”. Al-go-rhythm è descritto da geo-met-ri-che-ski, come la somiglianza della misura comune di due tagli. Si riduce al “seguito dalla nazione” dal più grande al più piccolo dal taglio. Ora questo ritmo al-go dalle pareti è come il ritmo al-go di Ev-kli-da per trovare i de-li-quelli più comuni -per due numeri on-turali.

L'idea di base su cui si basa l'al-go-rhythm è che i numeri $GCD$ $a$ e $b$ sono uguali $ GCD$ chi-sel $b$ e $a-b$. Da qui ne consegue che se aggiungi $a$ a $b$ con il resto, cioè rappresentato nella forma $a = b \cdot q + r$, quindi $MCD(a, b) = MCD(b, r)$.

Descriveremo la bellissima geo-met-ri-che-skaya in-ter-pre-ta-tion di al-go-rit-ma, inter-active-tiv-naya re-a-li-za -tion di qualcosa di fronte allo stesso, più in alto.

In un angolo dritto con i lati lunghi $a$ e $b$ per il quadrato più grande possibile. Nel rimanente carbone dritto, prendiamo nuovamente il massimo quadrato possibile. E così via fino a ricoprire tutto il rettangolo originale. La lunghezza del quadrato è cento e sarà uguale a $MCD(a, b)$.

Più dettagliato, ma geo-met-ri-che-skaya in-ter-pre-ta-tion op-sa-na di seguito, e par-ral-lel-ma with-ve-de-but arif-me-ti- che-skoe opis-sa-nie al-go-rit-ma Ev-kli-da.

Interpret-pre-ta-tion al-go-rit-ma Al-go-ritmo Ev-kli-da
In un angolo rettangolare con lati lunghi $a$ e $b$ $(a \gt b)$ per il quadrato più bello di piccole dimensioni (con cento $b$). Questa operazione va ripetuta il più possibile per la parte non verniciata. Il numero più grande $a$ viene diviso con il resto per il numero più piccolo $b$: $a = b \cdot q_1 + r_1$.
Se tali quadrati coprono l'intero rettangolo, allora il numero $b$ è $GCD$. Se il resto dell'attuale $r_1$ derivante dall'operazione è uguale a zero, allora il numero più piccolo $b$ è $GCD$.
Se rimane un rettangolo (con centinaia di $b$ e $r_1$), avrà il maggior numero possibile di quadrati di dimensione massima (con un centinaio di $r_1$). Se il resto di $r_1$ non è uguale a zero, allora il numero più piccolo $b$ viene diviso con il resto di $r_1$: $b = r_1 \cdot q_2 + r_2 $.
Se un quadrato con cento $r_1$ copre l'intero rettangolo, allora $r_1$ è $gcd$. Se, come risultato della seconda cancellazione, il resto dell'attuale $r_2$ è uguale a zero, allora $r_1$ è $GCD$.
Se rimane un rettangolo (con i secoli $r_1$ e $r_2$), avrà il maggior numero possibile di quadrati di dimensione massima (con un centinaio di $r_2$). Se il resto dell'attuale $r_2$ nella seconda divisione non è uguale a zero, allora $r_1$ viene diviso per $r_2$: $r_1 = r_2 \cdot q_3 + r_3$ .
E così via finché l'intero rettangolo originale non viene tagliato in un quadrato. (Prima o poi questo accadrà, man mano che centinaia di quadrati diminuiscono e comunque è possibile riempire con un centinaio di unità mezzo filo del restante quadrato rettangolare). E così via fino a quando il resto $r_n$ sarà uguale a zero (prima o poi ciò accadrà, poiché i resti -ku-si riducono).
La lunghezza di un quadrato di cento mi-no-piccolo-no-go è il $NOD$ dei numeri di origine. L'ultimo resto diverso da zero $r_(n-1)$ corrente è il $MCD$ dei numeri iniziali.

Il ritmo Al-go dell'Ev-kli-da è un potente strumento utilizzato per risolvere vari problemi personali. Ad esempio, viene utilizzato per risolvere equazioni in numeri interi, presentando i numeri sotto forma di frazioni a rottura costante (a catena), può essere generalizzato per trovare il più comune de-li-i due many-go-member-nov.

Letteratura

Euclide. Na-cha-la Ev-kli-da. Libri VII, X. - M.-L.: GITTL, 1950.

R. Ku-rant, G. Robins. Cos'è questo ma-te-ma-ti-ka? - M.: MTsNMO, 2010.

  • Introdurre il concetto di “algoritmo euclideo”.
  • Impara a trovare i divisori più comuni utilizzando diversi metodi matematici.

Durante le lezioni

Concetto di algoritmo euclideo

È uno dei più antichi matematici, che ha più di 2000 anni.

L'algoritmo di Euclide è stato inventato per trovare massimo comun divisore coppie di numeri interi.

Massimo comun divisore

Massimo comun divisore(MCD) è un numero che divide due numeri senza resto ed è esso stesso divisibile senza resto per qualsiasi altro divisore di questi numeri.

In altre parole, questo è il numero più grande per il quale due numeri per i quali è possibile trovare un divisore comune possono essere divisi senza resto.

Algoritmo per trovare il MCD mediante divisione

Descrizione dell'algoritmo per trovare il massimo comun divisore per divisione

Il numero più grande viene diviso per il numero più piccolo

Se è divisibile senza resto, il numero più piccolo è il massimo comun divisore. Ora devi uscire ciclo

Se c'è un resto, sostituisci il numero più grande con il resto della divisione

Vai al punto 1.

Esempio:

Trova il massimo comun divisore per 300 e 180.

300/180 = 1 (resto 120)

180/120 = 1 (resto 60)

120/60 = 2 (resto 0).

FINE: Il massimo comun divisore è 6.

IN ciclo“a” o “b” fissa il resto della divisione. Quando non c'è resto (non sappiamo se è in "a" o "b", quindi controlliamo entrambi condizioni), quindi il ciclo termina.

Alla fine viene visualizzata la somma di “a” e “b”, perché non sappiamo quale variabile contiene il massimo comun divisore, e comunque una di esse contiene 0, il che non influisce sul risultato della somma.

Algoritmo per trovare il MCD mediante sottrazione

Descrizione dell'algoritmo per trovare il massimo comun divisore mediante sottrazione

Il numero più piccolo viene sottratto dal numero più grande

Se il risultato è 0, i numeri sono uguali tra loro e costituiscono il massimo comun divisore. Esci dal ciclo

Se il risultato della sottrazione non è 0, il numero più grande viene sostituito dal risultato della sottrazione

Vai al punto 1.

Esempio: Trova i numeri 300 e 180.

FINE: Il divisore più comune dei numeri 300 e 180 è 60.

Come metodo per trovare la massima misura comune di due segmenti (il metodo della sottrazione alternata) era noto ai Pitagorici.

Quando si trova la massima misura comune di due segmenti procedere nello stesso modo di cui sopra.

L'operazione di divisione con resto viene sostituita dalla sua controparte geometrica: meno segmento lo rimandano a quello più grande quante volte possibile, e il resto del segmento più grande (e questo è il resto della divisione) viene rimandato al segmento più piccolo.

Se i segmenti UN E B commisurato, allora l’ultimo resto diverso da zero darà la massima misura comune dei segmenti.

Se sono incommensurabili, la sequenza risultante di residui diversi da zero sarà infinita.

Esempio:

Prendiamo come segmenti i lati AB e AC di un triangolo isoscele ABC, in cui A=C = 72°, B= 36°.

Come primo resto riceveremo il segmento AD (CD-bisettrice dell'angolo C), e, come è facile vedere, la sequenza di resti nulli sarà infinita.

Ciò significa che i segmenti AB e AC non sono commensurabili.

Domande

1. Cos'è l'algoritmo euclideo?

2. Qual è il massimo comun divisore?

Elenco delle fonti utilizzate

1. Lezione sul tema: "Algoritmo euclideo", P. I. Korchevoy, Lutsk

2. Algoritmo euclideo di Shchetnikov A.I. e frazioni continue. - Novosibirsk: ANT, 2003.

3. Countinho S. Introduzione alla teoria dei numeri. Algoritmo RSA, – M., 2001.

4. Kostrikin A.I. Introduzione all'algebra, - M., 2000.


Modificato e inviato dal docente Università nazionale di Kiev dal nome. Taras Shevchenko Solovyov M. S.

Abbiamo lavorato sulla lezione

Korchevoy P.I.

Soloviev M.S.

Fai una domanda su educazione moderna, esprimere un'idea o risolvere un problema urgente, puoi Foro educativo

Algoritmo di Euclideè un algoritmo per trovare il massimo comun divisore (MCD) di una coppia di numeri interi.

Massimo Comun Divisore (MCD)è un numero che divide due numeri senza resto ed è esso stesso divisibile senza resto per qualsiasi altro divisore dei due numeri dati. In poche parole, questo è il numero più grande per il quale due numeri per i quali si cerca il mcd possono essere divisi senza resto.

Algoritmo per trovare il MCD mediante divisione

  1. Dividere il numero più grande per il numero più piccolo.
  2. Se viene diviso senza resto, il numero più piccolo è MCD (dovresti uscire dal ciclo).
  3. Se c'è un resto, sostituisci il numero più grande con il resto della divisione.
  4. Passiamo al punto 1.

Esempio:
Trova MCD per 30 e 18.
30 / 18 = 1 (resto 12)
18 / 12 = 1 (resto 6)
12/6 = 2 (resto 0)
Fine: MCD è un divisore di 6.
MCD(30, 18) = 6

a = 50 b = 130 while a != 0 e b != 0 : if a > b: a = a % b else : b = b % a print (a + b)

Nel ciclo, il resto della divisione viene scritto nella variabile a o b. Il ciclo termina quando almeno una delle variabili è zero. Ciò significa che l'altro contiene un mcd. Tuttavia, non sappiamo quale esattamente. Pertanto, per MCD troviamo la somma di queste variabili. Poiché una delle variabili è zero, non ha alcun effetto sul risultato.

Algoritmo per trovare il MCD mediante sottrazione

  1. Sottrai il numero più piccolo dal numero più grande.
  2. Se il risultato è 0 significa che i numeri sono uguali tra loro e sono MCD (dovresti uscire dal ciclo).
  3. Se il risultato della sottrazione non è uguale a 0, sostituisci il numero più grande con il risultato della sottrazione.
  4. Passiamo al punto 1.

Esempio:
Trova MCD per 30 e 18.
30 - 18 = 12
18 - 12 = 6
12 - 6 = 6
6 - 6 = 0
Fine: GCD è un minuendo o sottraendo.
MCD(30, 18) = 6

a = 50 b = 130 while a != b: if a > b: a = a - b else : b = b - a print (a)

 

 

Questo è interessante: