Poziom podstawowy Formuła 2007

Maj 2017

Materiały do pobrania

1_1.py
def szyfruj(s, k, n):
    d = len(s)
    szyfr = list(s)

    i = 0
    while i + k < d:
        szyfr[i], szyfr[i + k] = szyfr[i + k], szyfr[i]
        i += n

    return "".join(szyfr)

print(szyfruj("ataknadranem", 4, 2)) # ntdkaaeranam
print(szyfruj("maturazinformatyki", 3, 5)) # uatmrnziafarmotyki
print(szyfruj("stokrotka", 1, 2)) # tskoorkta
1_2.py
def odszyfruj(s, k, n):
    s = list(s)
    i = ((len(s) - k - 1) // n) * n
    while i >= 0:
        s[i], s[i + k] = s[i + k], s[i]
        i -= n
    return "".join(s)

print(odszyfruj("eiindaezotinwezssyktpo", 2, 2)) # pieniadzetoniewszystko
2_2.py
def czy_pierwsza(n):
    if n < 2:
        return False
    for i in range(2, n):
        if n % i == 0:
            return False
    return True

def czy_blizniacza(a):
    if a < 3:
        print("NIE")
        return
    if czy_pierwsza(a) == False:
        print("NIE")
    else:
        if czy_pierwsza(a-2) or czy_pierwsza(a+2):
            print("TAK")
        else:
            print("NIE")

print(czy_blizniacza(5))
4_1.py
licznik = 0

with open("liczby.txt") as f:
    for line in f:
        liczby = list(map(int, line.strip().split()))

        if liczby[0] < liczby[1] < liczby[2]:
            licznik += 1

print(licznik)
4_2.py
import math
najwieksze_wspolne_dzielniki = []

with open("liczby.txt") as f:
    for line in f:
        trojki_liczb = list(map(int, line.strip().split()))

        najwieksze_wspolne_dzielniki.append(math.gcd(*trojki_liczb))

print(sum(najwieksze_wspolne_dzielniki))
4_3.py
licznik_35 = 0
sumy_liczb = []
liczba_wierszy_najwieksza_suma = 0

with open("liczby.txt") as f:
    for line in f:
        trojki_liczb = line.split()

        cyfry = [int(cyfra) for liczba in trojki_liczb for cyfra in liczba]

        if sum(cyfry) == 35:
            licznik_35 += 1

        sumy_liczb.append(sum(cyfry))

    for suma in sumy_liczb:
        if suma == max(sumy_liczb):
            liczba_wierszy_najwieksza_suma += 1

print(licznik_35)
print(max(sumy_liczb))
print(liczba_wierszy_najwieksza_suma)
2_1.md
3.md
1_3.txt
od j=1 do d
s[j] ← szyfr[j]
i ← 1
dopóki i <= d - k - n
 i ← i+n
dopóki i >= 1
 s[i] ↔ s[i+k]
 i = i - n
wyniki4.txt
4_1:
139

4_2:
1404

4_3:
Liczba trójek których suma cyfr to 35: 4
Największa suma cyfr: 88
Liczba wierszy z największą sumą: 2
wyniki5.txt
5_1:
2-osobowe

5_2:
2	2985
3	2816
4	2944
5	2997
6	3244

5_3:
6	196335.25
5	151509.94
4	119478.24
3	86170.73
2	61401


5_4:
1	1078.32
2	611.15
3	565.22
4	322.96
5	299.66
6	568.59
7	628.6
8	531.33
9	1045.12
10	813.25
11	1107.8
12	893.16

Wykres kolumnowy: 5_4.png
wyniki6.txt
6_1:
Dziewcząt: 976
Chłopców: 1124

6_2:
Lucjan	Jamski	75
Katarzyna	Maciak	68
Marta	Korbus	67
Szymon	Bujnarowski	65
Beniamin	Laskowski	65
Bartlomiej	Kogut	64
Antoni	Pilski	63
Mateusz	Krefta	61
Dorota	Dlugosz	61
Piotr	Kopacz	61

6_3:
697

6_4:
1	83
2	80.11
3	292.44