Algorytm Euklidesa obliczający największy wspólny dzielnik (NWD) w wersji z obliczaniem reszty z dzielenia utworzony w Pythonie.
Przydatne wiadomości:
Podobnie jak w poprzednim przykładzie algorytm został dostosowany do możliwości języka programowania, wprowadzone zmiany na schemacie blokowym zaznaczone są kolorem żółtym.
def nwd(a, b): while b != 0: reszta = a % b a = b b = reszta return a
Program można uprościć poprzez wyeliminowanie zmiennej pomocniczej reszta.
Instrukcja przypisania w Pythonie umożliwia przypisanie wielu wartości wielu zmiennym w jednej linii programu.
Np. zapis:
x, n, t = 7.3, 15, 'jakiś napis'
oznacza przypisanie kolejno:
x = 7.3 n = 15 t = 'jakiś napis'
Korzystając z tej właściwości można wyeliminować zmienną pomocniczą.
def nwd(a, b): while b != 0: a, b = b, a % b return a
Również zapisanie algorytmu jako funkcji rekurencyjnej nie wymaga stosowania dodatkowej zmiennej pomocniczej.
def nwd(a, b): if b == 0: return a return nwd(b, a % b)