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.