Przejdź do głównej zawartości

NWD w Pythonie cz. 2 - wersja z dzieleniem


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

Sprawdź jak to dział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

Sprawdź jak to dział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)

Sprawdź jak to działa »