Przeczytaj
Implementacja algorytmu Euklidesa w języku C++
Zaimplementuj algorytm Euklidesa, wykorzystując:
odejmowanie,
resztę z dzielenia.
Specyfikacja problemu:
Dane:
a
,b
– liczby naturalne dodatnie dla których program będzie wyznaczał NWD
Wynik:
Na standardowym wyjściu program wypisuje NWD liczb a
i b
.
Porównaj swoje rozwiązanie z filmem.
Przeanalizuj prezentację. Porównaj ze sobą działanie dwóch wersji algorytmu dla różnych par liczb.
Podsumowanie
Wyznaczymy NWDNWD liczb 35
i 14
przy użyciu dwóch wariantów algorytmu Euklidesa.
Algorytm Euklidesa z odejmowaniem
W tej wersji algorytmu interesuje nas różnica liczb, których NWD chcemy znaleźć. Odejmujemy zawsze mniejszą liczbę od większej.
Szukając NWD liczb 35
i 14
, wykonamy następujące czynności:
Odejmiemy od – powstaje nowa para liczb: i .
Odejmiemy od – otrzymujemy następną parę: i .
Odejmiemy od – pozostaje nam para liczb i .
Cykl odejmowania i tworzenia nowych par kończymy w chwili, gdy otrzymamy dwie identyczne liczby; każda z nich to NWD. W przypadku 35
i 14
jest to 7
.
Implementacja w języku C++
Algorytm Euklidesa z resztą z dzielenia
Wykonujemy następujące działania:
Obliczamy resztę z dzielenia przez . Wynosi ona .
Obliczamy resztę z dzielenia 14 przez 7; wynik operacji to . Pozostały nam liczby i .
Ponieważ jedna z liczb ma wartość zero, druga z nich (czyli ) jest największym wspólnym dzielnikiem.
Implementacja algorytmu w języku C++
Słownik
akronim pojęcia „największy wspólny dzielnik”