4.3 Iloczyn liczb z pierwszego wiersza
Matura maj 2024 - Matura z informatyki: arkusze krok po kroku (Python)
Zadanie 4.3 (3 pkt): które liczby z drugiego wiersza są iloczynem liczb z pierwszego, przy czym czynnik może się powtórzyć najwyżej tyle razy, ile razy występuje w pierwszym wierszu. Słownik `count` liczy wystąpienia, a funkcja dzieli liczbę przez każdą dostępną liczbę pierwszą. Jeśli na końcu zostaje 1, rozkład się udał. Dla pliku przykładowego: 10 12 14 15 18 20 21 25 27 28 (16 = 2 · 2 · 2 · 2 odpada, bo 2 występuje tylko dwa razy).
with open("liczby_przyklad.txt") as f:
first = [int(x) for x in f.readline().split()] # pierwszy wiersz: liczby pierwsze
second = [int(x) for x in f.readline().split()] # drugi wiersz: 20 liczb
# 4.3 ile razy każda liczba pierwsza występuje w pierwszym wierszu
count = {}
for p in first:
count[p] = count.get(p, 0) + 1
def product_of_first(x):
# dzielimy przez każdą dostępną liczbę pierwszą, ale nie częściej, niż ona występuje
for p, available in count.items():
used = 0
while x % p == 0:
x = x // p
used = used + 1
if used > available:
return False
return x == 1 # zostało 1: cały iloczyn złożony z liczb z pierwszego wiersza
products = [x for x in second if product_of_first(x)]
print("4.3", *products)Ł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.