KWALIFIKACJA INF2 + INF3 - CZERWIEC 2012

PYTANIE NR 23.
Algorytm przedstawiony w postaci listy kroków służy do
Ilustracja przedstawia algorytm w postaci listy kroków, który służy do obliczenia największego wspólnego podzielnika (NWD)
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Największy wspólny podzielnik to największa liczba całkowita dzieląca jednocześnie a i b. Algorytmy podawane jako kroki z powtarzaniem działań (np. dzielenia z resztą lub odejmowania aż do zrównania wartości) są typowym sposobem wyznaczania NWD, a nie testowania pierwszości, NWW ani samego porównania liczb.

Pełne wyjaśnienie:

Pytanie dotyczy rozpoznania celu algorytmu zapisanego jako lista kroków. W praktyce w zadaniach szkolnych i egzaminacyjnych taki zapis najczęściej odpowiada algorytmowi Euklidesa (w wersji z dzieleniem z resztą albo w wersji z odejmowaniem), czyli klasycznej procedurze do wyznaczania największego wspólnego podzielnika (NWD) liczb a i b.

Dlaczego poprawne jest "obliczenia największego wspólnego podzielnika liczb a i b."? NWD ma własność, że nie zmienia się przy zastąpieniu pary (a, b) parą (b, a mod b) lub przy wielokrotnym odejmowaniu mniejszej liczby od większej. Powtarzanie takich kroków aż do uzyskania reszty 0 (albo aż wartości się zrównają) prowadzi do wyniku, którym jest NWD.

  • Odpowiedź "sprawdzenia, czy liczby a i b są liczbami pierwszymi." jest błędna, bo test pierwszości wymaga badania dzielników (np. do pierwiastka z liczby) lub metod probabilistycznych; nie jest to procedura nastawiona na wspólny dzielnik dwóch liczb.
  • Odpowiedź "obliczenia najmniejszej wspólnej wielokrotności liczb a i b." jest myląca, bo NWW zwykle wyznacza się przez zależność z NWD (NWW = |a·b|/NWD) albo przez rozkład na czynniki pierwsze. Sama procedura typowa dla Euklidesa daje bezpośrednio NWD, a nie NWW.
  • Odpowiedź "sprawdzenia, która z liczb a i b jest większa." jest zbyt prosta względem typowych algorytmów krokowych: do porównania wystarcza jeden warunek. Algorytm iteracyjny z wieloma krokami ma zwykle cel obliczeniowy (tu: NWD), a nie jednorazowe wskazanie większej liczby.

Wskazówka egzaminacyjna: gdy widzisz w krokach operacje typu "reszta z dzielenia", "zamień (a, b)", "powtarzaj aż b = 0" lub "odejmuj mniejszą od większej aż do równości", skojarz to z NWD i algorytmem Euklidesa.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
NWD (największy wspólny dzielnik) to największa liczba całkowita, która dzieli bez reszty dwie liczby. W programowaniu używa się go m.in. do upraszczania ułamków, obliczeń na proporcjach, pracy z okresami oraz jako element bardziej złożonych algorytmów liczbowych.
W najczęstszej wersji powtarzasz: zastąp parę (a, b) parą (b, a mod b), aż b = 0. Wtedy a jest wynikiem NWD. Sens algorytmu polega na tym, że NWD nie zmienia się po takiej zamianie, a liczby szybko maleją.
Modulo (reszta z dzielenia) pozwala przejść od problemu NWD(a, b) do NWD(b, a mod b) bez zmiany wyniku. To skraca obliczenia, bo zamiast wielu odejmowań "upychasz" je w jednym dzieleniu z resztą, co zwykle działa szybciej.
NWD dotyczy dzielników (liczb, które dzielą), a NWW dotyczy wielokrotności (liczb, które są wielokrotnością). Intuicyjnie: NWD "zmniejsza" (upraszcza), a NWW "zwiększa" (szuka wspólnego kroku). Często łączy je zależność NWW = |a·b|/NWD.
Nie wprost. Algorytm Euklidesa służy do wyznaczania NWD dwóch liczb. Test pierwszości bada, czy liczba ma dzielniki inne niż 1 i ona sama. Możesz używać NWD pomocniczo (np. w pewnych konstrukcjach), ale to nie jest standardowy test pierwszości.
Porównanie liczb wymaga zwykle jednego warunku (np. if a > b). Jeśli w opisie są kroki powtarzane w pętli, zamiany wartości, odejmowanie aż do równości lub obliczanie reszty z dzielenia, to zwykle jest to procedura obliczeniowa, typowa dla NWD.
Najczęstsze pomyłki to: mylenie NWD z NWW, zapominanie o wartości bezwzględnej przy wzorze na NWW, błędne warunki stopu w pętli (np. zatrzymanie za wcześnie) oraz niepoprawna zamiana zmiennych w algorytmie. Pomaga ręczne prześledzenie 2–3 iteracji.
NWW liczy się, gdy chcesz znaleźć "wspólny rytm" lub najmniejszą wspólną wielokrotność okresów, np. harmonogramy zdarzeń cyklicznych, zrównanie mianowników ułamków, albo problem "co ile jednostek coś się zbiegnie". NWD częściej służy do upraszczania i redukcji.
Najbezpieczniej trzymać się schematu pętli: dopóki b ≠ 0, oblicz r = a mod b, następnie a = b, b = r. Na końcu zwróć a. Warto dodać obsługę przypadków brzegowych (np. a=0 lub b=0) i typów danych (int/long).
Wersja z odejmowaniem jest bardziej intuicyjna: odejmujesz mniejszą liczbę od większej, aż się zrównają, a ta wartość to NWD. Jest jednak zwykle wolniejsza od wersji z modulo. W testach bywa używana, bo łatwo ją zapisać jako proste kroki.
info

Statystycznie 48% uczniów zna prawidłową odpowiedź. trudne

Specjaliści zwracają uwagę: "Największy wspólny podzielnik to największa liczba całkowita dzieląca jednocześnie a i b."

Źródła:

  • Wikipedia (pl): "Algorytm Euklidesa" – opis działania i własności, https://pl.wikipedia.org/wiki/Algorytm_Euklidesa (dostęp: 2026-03-02)
  • Wikipedia (pl): "Największy wspólny dzielnik" – definicja i podstawowe własności, https://pl.wikipedia.org/wiki/Najwi%C4%99kszy_wsp%C3%B3lny_dzielnik (dostęp: 2026-03-02)
  • Wikipedia (pl): "Najmniejsza wspólna wielokrotność" – definicja i relacja z NWD, https://pl.wikipedia.org/wiki/Najmniejsza_wsp%C3%B3lna_wielokrotno%C5%9B%C4%87 (dostęp: 2026-03-02)

Materiały:

  • Podręczniki z podstaw algorytmiki i struktur danych (rozdziały o NWD i algorytmie Euklidesa)
  • Dokumentacja i przykłady implementacji NWD w wybranym języku (np. opis funkcji gcd w bibliotekach standardowych)
  • Materiały dydaktyczne o dzieleniu z resztą i własnościach NWD/NWW

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego