3.4 Cyfry szesnastkowe w pliku przykładowym
Matura próbna grudzień 2022 - Matura z informatyki: arkusze krok po kroku (Python)
Zadanie 3.4 (3 pkt): ile razy każda cyfra szesnastkowa występuje łącznie w zapisach szesnastkowych wszystkich liczb. `format(x, "X")` daje zapis szesnastkowy wielkimi literami (sam algorytm zamiany: reszty z dzielenia przez 16, jak przy systemie dwójkowym). Słownik liczników zaczyna od zera dla wszystkich 16 cyfr, więc w wyniku są też cyfry, których nie ma. Dla pliku przykładowego: 4:94, 0:2, 1:3, ... (odpowiedź w arkuszu).
def sieve(n):
is_prime = [True] * (n + 1) # indeks = liczba
is_prime[0] = is_prime[1] = False
i = 2
while i * i <= n: # wystarczy do pierwiastka: mniejsze wielokrotności skreśliły mniejsze i
if is_prime[i]:
j = i * i # mniejsze wielokrotności i są już skreślone
while j <= n:
is_prime[j] = False
j = j + i
i = i + 1
return is_prime
with open("liczby_przyklad.txt") as f:
numbers = [int(line) for line in f] # liczby parzyste z [4, 1 000 000]
is_prime = sieve(max(numbers))
# 3.4 format(x, "X") to zapis szesnastkowy wielkimi literami
digits = {d: 0 for d in "0123456789ABCDEF"}
for x in numbers:
for d in format(x, "X"):
digits[d] += 1
print("3.4")
for d, n in digits.items():
print(f"{d}:{n}")Ł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.