Największy wspólny dzielnik (NWD)

Zadanie 6 z 10 · rozdział 7Trudność: 1 z 3Euklidesmodulopętle

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

Wejście
60
45
Wyjście
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.

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 uruchomiono
Wejście
48
18
Oczekiwane wyjście
6

Test 2

Nie uruchomiono
Wejście
21
14
Oczekiwane wyjście
7

Test 3

Nie uruchomiono
Wejście
17
5
Oczekiwane wyjście
1

Test 4

Nie uruchomiono
Wejście
12
12
Oczekiwane wyjście
12

Test 5

Nie uruchomiono
Wejście
25
100
Oczekiwane wyjście
25
Uruchom z własnymi danymi