Algorytm Euklidesa

Tw. o dzieleniu z resztą
Dla dowolnych liczb całkowitych \(a\) i \(b\), \(b\neq 0\) istnieje dokładnie jedna para liczb całkowitych \(q, r\) taka, że $$a=qb+r.$$ Liczbę \(0\leq r < |b|\) nazywamy resztą z dzielenia liczby \(a\) przez \(b\).
Przykład
\(a=26, b=11\). Wtedy stwierdzamy, że \(q=2\) oraz \(r=4\), bo
\(26=2 \cdot 11 + 4\)
Uwaga
Jeśli \(r=0\) to mówimy, że \(b\) dzieli \(a\) (lub \(a\) jest podzielna przez \(b\)), co oznaczamy \(b \mid a\).
Przykłady
\(12\mid 24\), bo \(24=2\cdot 12+0\) (czytamy 12 dzieli 24)
\(2\mid 4\), bo \(4=2\cdot 2+0\) (czytamy 2 dzieli 4)
ale \(3\not\mid 5\), bo \(5=2\cdot 2 +1\) (czytamy 3 nie dzieli 5)

Algorytm Euklidesa

Dla dowolnych liczb całkowitych \(a\) i \(b\) na mocy Tw. o dzieleniu z resztą mamy
$$a=q_{1}b+r_{1}, 0< r_{1}< |b|$$ $$b=q_{2}r_{1}+r_{2}, 0< r_{2}< |r_{1}|$$ $$r_{1}= q_{3}r_{2} +r_{3}, 0< r_{3}< |r_{2}|$$ $$\vdots$$ $$r_{n-2}= q_{n}r_{n-1}+r_{n}, 0< r_{n} < |r_{n-1}|$$ $$r_{n-1}= q_{n+1}r_{n}$$ Wówczas \(r_{n}=NWD(a, b)\) (ostatnia niezerowa reszta).
Dowód
oznaczmy \(d = NWD(a, b)\)
Algorytm zawsze się zatrzymuje, bo w każdym kroku otrzymujemy liczbę (resztę) co najmniej o 1 mniejszą od poprzednej, więc kiedyś dojdziemy do zera. Z ostatniej równości $$r_{n-1}= q_{n+1}r_{n}$$ widzimy, że \(r_{n}\mid r_{n-1}\). Z pozostałych równości wynika \(r_{n} \mid r_{n-2}, …, r_{n} \mid r_{1}\) zatem
\(r_{n} \mid a, r_{n} \mid b\) (ostatnia niezerowa reszta jest wspólnym dzielnikiem liczb \(a\) i \(b)\) , a więc w szczególności \(r_{n}\mid d\).
Z drugiej strony \(d \mid a\) i \(d \mid b\), a więc patrząc na pierwszą równość \(a=q_{1}b+r_{1}\) stwierdzamy, że \(d \mid r_{1}\). Dalej kolejno \(d \mid r_{2}, …, d \mid r_{n-1}, d \mid r_{n}\).
Ponieważ \(r_{n} \mid d\) i jednocześnie \(d \mid r_{n}\), więc \(d = r_{n}\).
Dzielimy z resztą większą z dwóch liczb przez mniejszą dopóki obie są różne od zera. Ostatnia niezerowa reszta, to szukane NWD.
Przykład
Obliczyć NWD(72, 56)
$$72 = 1\cdot 56 + 16$$ $$56= 3\cdot 16 + 8$$ $$16= 2\cdot 8 + 0$$ Widzimy, że ostatnią niezerową resztą jest 8.
Zatem NWD(72, 56)=8.
Zaletą algorytmu Euklidesa jest to, że nie musimy liczby rozkładać na czynniki pierwsze, aby obliczyć ich NWD.
Oblicz NWD(128,54)
Wykonujemy kolejno (mniejszą z dwóch liczb przepisujemy, a druga to dzielenie z resztą )
12854
2054
2014
614
62
02stop

Ostatnią niezerową resztą jest 2, zatem NWD(128, 54)=2
Przykład
Oblicz NWW(12, 32, 514).
Rozwiązanie
Korzystamy z własnoœści \(NWW(12, 32, 514) = NWW(NWW(12,32), 514)\)
czyli obliczamy najpierw \(NWD(12,32)\) korzystając z algorytmu Euklidesa
1232
128
48
40

czyli \(NWD(12, 32) = 4\), dalej korzystamy ze wzoru \(a\cdot b = NWW(a, b)\cdot NWD(a, b)\) $$NWW(12, 32) = 12:4\cdot 32=96$$ czyli
\(NWW(12, 32, 514) = NWW(96, 514)\) Obliczamy /(NWD(90, 514)/) za pomocą algorytmu Euklidesa.
96514
9634
2834
286
46
42
02

czyli \(NWD(96, 514)=2\), dalej \(NWW(96, 514)=96:2\cdot 514 = 48\cdot 514 = 25632\)
Odp.
\(NWW(12, 32, 514) = 25632\).

powrót do spisu