3.2 Dzielniki pierwsze w pliku przykładowym

Matura próbna grudzień 2024 - Matura z informatyki: arkusze krok po kroku (Python)

Zadanie 3.2 (3 pkt): liczby, które mają co najmniej 5 różnych dzielników pierwszych. Rozkład na czynniki dzieli przez kolejne \( d \) do \( \sqrt{n} \), a pętla wewnętrzna usuwa wszystkie wystąpienia dzielnika, więc \( 12 = 2 \cdot 2 \cdot 3 \) ma dwa różne dzielniki, nie trzy. Dla pliku przykładowego jest jedna taka liczba: \( 2730 = 2 \cdot 3 \cdot 5 \cdot 7 \cdot 13 \).

with open("liczby_przyklad.txt") as f:
    numbers = [int(line) for line in f]

# 3.2 liczba różnych dzielników pierwszych: rozkład na czynniki, każdy dzielnik liczony raz
def prime_divisors(n):
    count = 0
    d = 2
    while d * d <= n:
        if n % d == 0:
            count = count + 1
            while n % d == 0:  # usuwa wszystkie wystąpienia dzielnika d
                n = n // d
        d = d + 1
    if n > 1:  # została jedna liczba pierwsza większa niż pierwiastek
        count = count + 1
    return count


many = [x for x in numbers if prime_divisors(x) >= 5]

print("3.2", *many)

Ł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.