Poziom rozszerzony Formuła 2015

Maj 2024

Materiały do pobrania

1_2.py
def Najwiekszy_Czynnik(n):
    d = 2
    wynik = 1

    while n > 1:
        while n % d == 0:
            wynik = d
            n = n // d
        d = d + 1

    return wynik

print(Najwiekszy_Czynnik(252))
2.py
def fun(a, b):
    if a <= 2:
        if a == 2:
            return True
        else:
            return False

    if a % b == 0:
        return False

    if b * b > a:
        return True

    return fun(a, b + 1)

# 2_1:
print(fun(0, 2))
print(fun(1, 2))
print(fun(7, 2))
print(fun(16, 2))
print(fun(-4, 2))


4_1.py
plansza = []

with open("plansza.txt") as f:
    for linia in f:
        plansza.append(list(map(int, linia.split())))

n = 100
licznik = 0

for i in range(n):
    for j in range(n):
        if plansza[i][j] == 0:

            mozna = True

            for di in (-1, 0, 1):
                for dj in (-1, 0, 1):
                    if di == 0 and dj == 0:
                        continue

                    ni = i + di
                    nj = j + dj

                    if 0 <= ni < n and 0 <= nj < n:
                        if plansza[ni][nj] == 1:
                            mozna = False

            if mozna:
                licznik += 1

print(licznik)
4_2.py
plansza = []

with open("plansza.txt") as f:
    for linia in f:
        plansza.append(list(map(int, linia.split())))

rozmiar_planszy = 100

jednomasztowce = [[False] * rozmiar_planszy for _ in range(rozmiar_planszy)]

for wiersz in range(rozmiar_planszy):
    for kolumna in range(rozmiar_planszy):

        if plansza[wiersz][kolumna] == 1:

            czy_jednomasztowiec = True

            for przesuniecie_wiersza in (-1, 0, 1):
                for przesuniecie_kolumny in (-1, 0, 1):

                    if przesuniecie_wiersza == 0 and przesuniecie_kolumny == 0:
                        continue

                    sasiedni_wiersz = wiersz + przesuniecie_wiersza
                    sasiednia_kolumna = kolumna + przesuniecie_kolumny

                    if (0 <= sasiedni_wiersz < rozmiar_planszy and
                        0 <= sasiednia_kolumna < rozmiar_planszy and
                        plansza[sasiedni_wiersz][sasiednia_kolumna] == 1):

                        czy_jednomasztowiec = False

            if czy_jednomasztowiec:
                jednomasztowce[wiersz][kolumna] = True

liczba_par_symetrycznych = 0

for wiersz in range(rozmiar_planszy):
    for kolumna in range(wiersz + 1, rozmiar_planszy):

        if (jednomasztowce[wiersz][kolumna] and
            jednomasztowce[kolumna][wiersz]):

            liczba_par_symetrycznych += 1

print(liczba_par_symetrycznych)
4_3.py
plansza = []

with open("plansza.txt") as f:
    for linia in f:
        plansza.append(list(map(int, linia.split())))

rozmiar_planszy = 100

liczba_dwumasztowcow = 0

for wiersz in range(rozmiar_planszy):
    for kolumna in range(rozmiar_planszy):

        if plansza[wiersz][kolumna] == 1:

            if (kolumna + 1 < rozmiar_planszy and
                plansza[wiersz][kolumna + 1] == 1):
                liczba_dwumasztowcow += 1

            if (wiersz + 1 < rozmiar_planszy and
                plansza[wiersz + 1][kolumna] == 1):
                liczba_dwumasztowcow += 1

print(liczba_dwumasztowcow)
4_4.py
plansza = []

with open("plansza.txt") as f:
    for linia in f:
        plansza.append(list(map(int, linia.split())))

rozmiar_planszy = 100

liczba_jednomasztowcow_na_przekatnej = 0
liczba_dwumasztowcow_na_przekatnej = 0

for wiersz in range(rozmiar_planszy):
    for kolumna in range(rozmiar_planszy):

        if plansza[wiersz][kolumna] != 1:
            continue

        liczba_sasiadow = 0

        for przesuniecie_wiersza in (-1, 0, 1):
            for przesuniecie_kolumny in (-1, 0, 1):

                if przesuniecie_wiersza == 0 and przesuniecie_kolumny == 0:
                    continue

                sasiedni_wiersz = wiersz + przesuniecie_wiersza
                sasiednia_kolumna = kolumna + przesuniecie_kolumny

                if (0 <= sasiedni_wiersz < rozmiar_planszy and
                    0 <= sasiednia_kolumna < rozmiar_planszy and
                    plansza[sasiedni_wiersz][sasiednia_kolumna] == 1):

                    liczba_sasiadow += 1

        if liczba_sasiadow == 0:

            if (wiersz == kolumna or
                wiersz + kolumna == rozmiar_planszy - 1):

                liczba_jednomasztowcow_na_przekatnej += 1

        if (kolumna + 1 < rozmiar_planszy and
            plansza[wiersz][kolumna + 1] == 1):

            if (
                wiersz == kolumna or
                wiersz + kolumna == rozmiar_planszy - 1 or
                wiersz == kolumna + 1 or
                wiersz + (kolumna + 1) == rozmiar_planszy - 1
            ):
                liczba_dwumasztowcow_na_przekatnej += 1

        if (wiersz + 1 < rozmiar_planszy and
            plansza[wiersz + 1][kolumna] == 1):

            if (
                wiersz == kolumna or
                wiersz + kolumna == rozmiar_planszy - 1 or
                wiersz + 1 == kolumna or
                (wiersz + 1) + kolumna == rozmiar_planszy - 1
            ):
                liczba_dwumasztowcow_na_przekatnej += 1

print(liczba_jednomasztowcow_na_przekatnej)
print(liczba_dwumasztowcow_na_przekatnej)
1_1.txt
liczba n rozkład liczby n na czynniki pierwsze największy czynnik
120      2 * 2 * 2 * 3 * 5                      5
14       2 * 7                                  7
32       2 * 2 * 2 * 2 * 2                      2
99       3 * 3 * 11                             11
252      2 * 2 * 3 * 3 * 7                      7
2_1.txt
a   wynik fun(a, 2)
0   FAŁSZ
1   FAŁSZ
7   PRAWDA
16  FAŁSZ
-4  FAŁSZ
2_2.txt
a   Liczba wywołań fun(a, b + 1)
2   0
35  3
17  3
77  5
3.txt
3_1:
1. F
2. F
3. P
4. F

3_2:
1. F
2. F
3. P
4. P

3_3:
1. P
2. P
3. P
4. F

3_4:
1. F
2. F
3. P
4. P
wyniki5.txt
5_1:
23/03/2022	789
29/03/2022	5776

5_2:
nip_klienta		ilosc_per_klient
164-61-25-530		12185 kg
159-34-45-151		12047 kg
091-99-74-175		11769 kg

5_3:
Całkowity przychód: 2422669.40zł

Odmiana przynosząca największy przychód: Reneta

5_4:
Wykres w 5.xlsx - Arkusz 5_4

5_5:
Liczba transakcji z rabatem
180

Łączna wartość transakcji:
3089.10 zł
wyniki6.txt
6_1:
Imie		Nazwisko		Suma_mandatow
Rafael	    Blake		    3700

6_2:
Punkty	LiczbaWykroczen
0		837
2		825
4		782
6		844
8		886
10		826

6_3:
Miesiac	SumaPunktow
11		1766

6_4:
NrRejestracyjny	Imie		Nazwisko
BHW4028		    Sandra	    Wheeler
CJX1859			Quynn	    Travis
KNM7950			Jasper	    Santos
NIP6570			Honorato	Roth
QFR8936		    Ivy		    Bowen
SRU9727			Helen	    White
XHK9060			Quentin	    Tyler
YYS1077			Kevin	    Wright

6_5:
Region	LiczbaWykroczen
GCL		5
YQO	    5