Największy wspólny dzielnik (NWD)
Treść zadania
Napisz funkcję nwd(a, b), która zwraca największy wspólny dzielnik liczb a i b. Użyj pętli (np. algorytmu Euklidesa), a nie funkcji math.gcd().
Program wczytuje a i b, wywołuje funkcję i wypisuje wynik.
Dane wejściowe
- 1. linia:
a— liczba naturalna (a ≥ 1) - 2. linia:
b— liczba naturalna (b ≥ 1)
Dane wyjściowe
Jedna liczba całkowita — $\text{NWD}(a, b)$.
Uwagi
- Algorytm Euklidesa: dopóki $b \neq 0$, zastępuj parę $(a, b)$ parą $(b, a \bmod b)$. Na końcu wynikiem jest $a$.
Przykład
60 45
15
Potrzebujesz teorii?
Zasady obowiązujące w rozdziale 7
Zadania w tym rozdziale łączą pętle z funkcjami: implementujesz klasyczne algorytmy matematyczne (potęgowanie, silnia, NWD, NWW, pierwiastek, test pierwszości) bez gotowych funkcji bibliotecznych.
Konwencje wspólne:
- Każde zadanie (i każdy podpunkt) to osobny program: czyta standardowe wejście i wypisuje wynik na standardowe wyjście.
- Program nie wypisuje komunikatów typu „Podaj liczbę:”. Tekst podany w
input("…")jest ignorowany przez sprawdzarkę. - Jeśli zadanie mówi „napisz funkcję”, zaimplementuj funkcję o podanej nazwie, która zwraca wynik przez
return. Program wczytuje dane, wywołuje funkcję i wypisuje wynik — gotowy szkielet znajdziesz w sekcji Kod startowy. - Dane wejściowe wczytuj dokładnie w podanej kolejności, każdą wartość z osobnej linii.
Zadanie pochodzi z otwartego zbioru Nauka-Programowania (z rozwiązaniami wzorcowymi). Zgłoś błąd w treści lub testach.
Przywrócono Twój zapisany kod.
Python uruchomi się w przeglądarce przy pierwszym teście.
Kod zapisuje się automatycznie w tej przeglądarce. Tab wstawia wcięcie; aby opuścić edytor klawiaturą, naciśnij Esc, a potem Tab.
Testy
Program dostaje „Wejście” przez input() i musi wypisać „Oczekiwane wyjście”. Liczby porównywane są z tolerancją 0,01, a tekst podany w input("…") nie jest sprawdzany.
Test 1
Nie uruchomiono48 18
6
Test 2
Nie uruchomiono21 14
7
Test 3
Nie uruchomiono17 5
1
Test 4
Nie uruchomiono12 12
12
Test 5
Nie uruchomiono25 100
25