3. Całe zadanie: potęgi modulo w wyniki3.txt
Matura pokazowa marzec 2022 - Matura z informatyki: arkusze krok po kroku (Python)
Pełne rozwiązanie zadań 3.3-3.5 jednym programem na pliku `liczby.txt`.
rows = []
with open("liczby.txt") as f:
for line in f:
M, a, b = map(int, line.split())
rows.append((M, a, b))
# 3.3 liczba pierwsza: większa od 1 i bez dzielnika od 2 do pierwiastka
def is_prime(n):
if n < 2:
return False
d = 2
while d * d <= n:
if n % d == 0:
return False
d = d + 1
return True
primes = 0
for M, a, b in rows:
if is_prime(M):
primes = primes + 1
# 3.4 algorytm Euklidesa: względnie pierwsze, gdy NWD = 1
def gcd(p, q):
while q > 0:
p, q = q, p % q
return p
coprime = 0
for M, a, b in rows:
if gcd(M, a) == 1:
coprime = coprime + 1
# 3.5 kolejne potęgi a^0, a^1, ..., a^(M-1) modulo M: każda z poprzedniej jednym mnożeniem
solvable = 0
for M, a, b in rows:
value = 1 % M # a^0 mod M
for x in range(M):
if value == b:
solvable = solvable + 1
break
value = value * a % M
with open("wyniki3.txt", "w", encoding="utf-8") as out:
print("3.3", primes, file=out)
print("3.4", coprime, file=out)
print("3.5", solvable, file=out)
print(open("wyniki3.txt", encoding="utf-8").read())Ł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.