Algorytm Euklidesa obliczający największy wspólny dzielnik (NWD) w wersji z odejmowaniem utworzony w Pythonie.
Przydatne wiadomości:
Aby napisać program na podstawie algorytmu często wymagane jest dostosowanie algorytmu do możliwości wykorzystywanego języka programowania, taka sytuacja ma miejsce również w tym przypadku.
Pętla while w Pythonie wykonuje ciąg instrukcji dopóki warunek jest spełniony, powoduje to konieczność niewielkiej modyfikacji algorytmu.
while warunek: instrukcje
Wprowadzone zmiany zaznaczone są kolorem żółtym.
Zarówno w jednym jak i drugim przypadku algorytm wyświetli wynik i zakończy działanie kiedy wartości zmiennych a i b będą równe.
Należy pamiętać iż powyższy algorytm prawidłowo oblicza NWD tylko gdy wprowadzone liczby a i b są większe od zera.
Na podstawie zmodyfikowanego algorytmu utworzona została funkcja obliczająca największy wspólny dzielnik.
def nwd(a, b): while a != b: if a > b: a = a - b else: b = b - a return a
Korzystając z operatora logicznego not warunek wykonania pętli while można zapisać w inny sposób.
Zamiast: a != b można zapisać: not(a == b)
Wówczas funkcja będzie postać:
def nwd(a, b): while not(a == b): if a > b: a = a - b else: b = b - a return a