Przejdź do głównej zawartości

Największy Wspólny Dzielnik - Algorytm Euklidesa

Największy Wspólny Dzielnik - Algorytm Euklidesa

Algorytm Euklidesa służy do wyznaczenia największego wspólnego dzielnika (NWD) dwóch liczb całkowitych.

Przydatne wiadomości:

Największy wspólny dzielnik (NWD) dwóch liczb całkowitych jest największą liczbą naturalną, która dzieli każdą z nich bez reszty. 

Uwaga! Najprostsze algorytmy Euklidesa spotykane w podręcznikach dla szkoły podstawowej prawidłowo obliczają NWD tylko dla liczb naturalnych (całkowitych dodatnich) większych od zera.

Algorytm Euklidesa - wersja z odejmowaniem

a, b - liczby naturalne większe od zera

Przykładowy zapis w postaci listy kroków:

  1. Wprowadź liczby: a, b
  2. Jeżeli a = b to: przejdź do kroku 5
  3. Jeżeli a > b to: a = a - b w przeciwnym razie: b = b - a
  4. Przejdź do kroku 2
  5. Wyprowadź wynik NWD = a

Ten sam algorytm przedstawiony w postaci schematu blokowego:

Działanie powyższego algorytmu można obejrzeć na zamieszczonym na początku filmiku oraz prześledzić kolejne kroki dla dowolnych wartości na stronie: Schemat blokowy NWD z odejmowaniem

Algorytm Euklidesa - wersja z dzieleniem (obliczaniem reszty z dzielenia)

Do obliczenia reszty z dzielenia służy operacja modulo (zapis matematyczny mod), np. 13 mod 5 = 3.

a, b - liczby naturalne większe od zera

Przykładowy zapis w postaci listy kroków:

  1. Wprowadź liczby: a, b
  2. Jeżeli b = 0 to: przejdź do kroku 7
  3. reszta = a mod b
  4. a = b
  5. b = reszta
  6. Przejdź do kroku 2
  7. Wyprowadź wynik NWD = a

Poniżej algorytm w postaci schematu blokowego:

Działanie tego algorytmu można wypróbować i prześledzić na stronie: Schemat blokowy NWD z dzieleniem.

Inne warianty algorytmu Euklidesa z obliczaniem reszty z dzielenia

Instrukcje wewnątrz pętli mają zmienioną kolejność, a zmienna pomocnicza n wykorzystana jest do zapamiętania początkowej wartości zmiennej b.

Wariant ze sprawdzaniem warunku na końcu pętli.