3.1 Dron: NWD przesunięć

Matura maj 2025 - Matura z informatyki: arkusze krok po kroku (Python)

**Zadanie 3. Dron.** Plik `dron.txt` ma 100 wierszy z parą liczb całkowitych: przesunięcie w poziomie (zawsze dodatnie) i w pionie (ujemne = w dół). Lot zaczyna się w (0, 0). Zadanie 3.1 (2 pkt): liczba par, w których NWD wartości bezwzględnych jest większe od 1, przy czym NWD(A, 0) = A. Dla pliku `dron_przyklad.txt` odpowiedź to 6.

moves = []
with open("dron_przyklad.txt") as f:
    for line in f:
        a, b = line.split()
        moves.append((int(a), int(b)))


def gcd(a, b):
    # algorytm Euklidesa; gcd(a, 0) = a, jak w uwadze do zadania
    while b > 0:
        a, b = b, a % b
    return a


# 3.1 wartości bezwzględne: ruch w dół ma ujemne B
count = sum(1 for a, b in moves if gcd(abs(a), abs(b)) > 1)

print("3.1", count)

Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.

Wszystkie lekcje kursu Matura z informatyki: arkusze krok po kroku·Zaloguj się, aby zapisać postęp na koncie.