FilmProgramowanie w Pythonie. Badanie własności liczb całkowitych. Liczby pierwsze

Film omawia badanie własności liczb całkowitych na przykładzie badania pierwszości danej liczby, tj. sprawdzania jej podzielności przez kolejne liczby całkowite.

Ćwiczenie 0

Zdefiniuj funkcję czy_parzysta(n), której wynikiem jest True w przypadku, gdy liczba podana jako parametr jest parzysta, lub False, gdy jest nieparzysta. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji czy_parzysta(1) jest False.
  • Wynikiem funkcji czy_parzysta(2) jest True.

Wskazówka
Zauważ, że algorytm sprawdzania parzystości liczby opiera się na badaniu reszty z dzielenia liczby przez 2. Jeśli ta reszta równa jest 0, to liczba jest parzysta, w przeciwnym wypadku – nieparzysta.

def czy_parzysta(n): # zdefiniuj funkcję i sprawdź jej działanie pass
Wynikiem funkcji czy_parzysta(8) jest True.
testResult = czy_parzysta(8)==True
True
czy_parzysta(8)
Wynikiem funkcji czy_parzysta(13) jest False.
testResult = czy_parzysta(13)==False
False
czy_parzysta(13)
Wynikiem funkcji czy_parzysta(2468086420) jest True.
testResult = czy_parzysta(2468086420)==True
True
czy_parzysta(2468086420)
Rozwiąż ćwiczenie

Ćwiczenie 1Czy liczba jest pierwsza?

Zdefiniuj funkcję logiczną czy_pierwsza(n), której parametrem jest liczba naturalna n większa od 1, a wynikiem wartość True, gdy jest ona liczbą pierwszą, albo False, gdy nią nie jest. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji czy_pierwsza(11) jest True.
  • Wynikiem funkcji czy_pierwsza(99) jest False.
def czy_pierwsza(n): # zdefiniuj funkcję i sprawdź jej działanie pass
Wynikiem funkcji czy_pierwsza(2) jest True.
testResult = czy_pierwsza(2)==True
True
czy_pierwsza(2)
Wynikiem funkcji czy_pierwsza(15555) jest False.
testResult = czy_pierwsza(15555)==False
False
czy_pierwsza(15555)
Wynikiem funkcji czy_pierwsza(7) jest True.
testResult = czy_pierwsza(7)==True
True
czy_pierwsza(7)
Rozwiąż ćwiczenie

Ćwiczenie 2N-ta liczba pierwsza

Zdefiniuj funkcję pierwsza(n), której parametrem będzie liczba naturalna n, a wynikiem – n-ta liczba pierwsza. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji pierwsza(7) jest 17.
  • Wynikiem funkcji pierwsza(25) jest 97.
def pierwsza(n): # zdefiniuj funkcję i sprawdź jej działanie pass
Wynikiem funkcji pierwsza(1) jest 2.
testResult = pierwsza(1)==2
2
pierwsza(1)
Wynikiem funkcji pierwsza(17) jest 59.
testResult = pierwsza(17)==59
59
pierwsza(17)
Wynikiem funkcji pierwsza(100) jest 541.
testResult = pierwsza(100)==541
541
pierwsza(100)
Rozwiąż ćwiczenie

Ćwiczenie 3Liczby bliźniacze

Liczby bliźniacze to liczby pierwsze różniące się o 2. W pierwszej setce jest osiem par takich liczb: 3 i 5, 5 i 7, 11 i 13, 17 i 19, 29 i 31, 41 i 43, 59 i 61, 71 i 73. Zdefiniuj funkcję blizniacze(n), której parametrem jest liczba naturalna n, a wynikiem pierwsza liczba z n-tej pary liczb bliźniaczych. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji blizniacze(3) jest 11.
  • Wynikiem funkcji blizniacze(7) jest 59.
def blizniacze(n): # zdefiniuj funkcję i sprawdź jej działanie pass
Wynikiem funkcji blizniacze(1) jest 3.
testResult = blizniacze(1)==3
3
blizniacze(1)
Wynikiem funkcji blizniacze(2) jest 5.
testResult = blizniacze(2)==5
5
blizniacze(2)
Wynikiem funkcji blizniacze(10) jest 107.
testResult = blizniacze(10)==107
107
blizniacze(10)
Rozwiąż ćwiczenie

Ćwiczenie 4Suma dzielników liczby

Zdefiniuj funkcję suma_dzielnikow(n), której parametrem jest liczba naturalna n, a wynikiem – suma dzielników tej liczby. Sformułuj dwa algorytmy i porównaj szybkość działania każdego z nich dla różnych danych. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji suma_dzielnikow(7) jest 8.
  • Wynikiem funkcji suma_dzielnikow(25) jest 31.
def suma_dzielnikow(n): # zdefiniuj funkcję i sprawdź jej działanie pass
Wynikiem funkcji suma_dzielnikow(2) jest 3.
testResult = suma_dzielnikow(2)==3
3
suma_dzielnikow(2)
Wynikiem funkcji suma_dzielnikow(5) jest 6.
testResult = suma_dzielnikow(5)==6
6
suma_dzielnikow(5)
Wynikiem funkcji suma_dzielnikow(100) jest 217.
testResult = suma_dzielnikow(100)==217
217
suma_dzielnikow(100)
Rozwiąż ćwiczenie

Zadanie 1Liczby czworacze

Liczby czworacze to liczby pierwsze mające postać: n, n + 2, n + 6 i n + 8, np. 5, 7, 11, 13 i 11, 13, 17, 19 i 101, 103, 107, 109. Zdefiniuj funkcję czworacze(n), której parametrem będzie liczba naturalna n, a wynikiem – lista takich liczb czworaczych, gdzie pierwsza liczba będzie większa od podanego parametru. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji czworacze(9) jest [11, 13, 17, 19].
  • Wynikiem funkcji czworacze(150) jest [191, 193, 197, 199].
def czworacze(n): # zdefiniuj funkcję i sprawdź jej działanie pass
Wynikiem funkcji czworacze(1) jest [5, 7, 11, 13].
testResult = czworacze(1)==[5, 7, 11, 13]
[5, 7, 11, 13]
czworacze(1)
Wynikiem funkcji czworacze(5) jest [11, 13, 17, 19].
testResult = czworacze(5)==[11, 13, 17, 19]
[11, 13, 17, 19]
czworacze(5)
Wynikiem funkcji czworacze(100) jest [101, 103, 107, 109].
testResult = czworacze(100)==[101, 103, 107, 109]
[101, 103, 107, 109]
czworacze(100)
Rozwiąż ćwiczenie

Zadanie 2Problem Collatza

Ciąg liczb Collatza zdefiniowany jest następująco: pierwsza liczba ciągu jest dowolną liczbą naturalną x, a każda kolejna wartość ciągu obliczana jest na podstawie poprzedniej według poniższych zasad:

  • jeśli poprzednia wartość była parzysta, to należy podzielić ją przez 2;
  • jeśli poprzednia wartość była nieparzysta, to należy pomnożyć ją przez 3 i dodać 1.

Wobec tego dla wartości początkowej x = 10 kolejne liczby to: 5, 16, 8, 4, 2, 1. Zdefiniuj funkcję collatz(x), której parametrem będzie liczba naturalna x, czyli wartość początkowa ciągu liczb Collatza, a wynikiem – liczba kroków, po których w ciągu pojawi się liczba 1. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji collatz(10) jest 6.
  • Wynikiem funkcji collatz(15) jest 17.
def collatz(x): # zdefiniuj funkcję i sprawdź jej działanie pass
Wynikiem funkcji collatz(1) jest 0.
testResult = collatz(1)==0
0
collatz(1)
Wynikiem funkcji collatz(2) jest 1.
testResult = collatz(2)==1
1
collatz(2)
Wynikiem funkcji collatz(20) jest 7.
testResult = collatz(20)==7
7
collatz(20)
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 1

Zdefiniuj funkcję parzyste(liczba1, liczba2), której parametrami są liczby całkowite dodatnie, przy czym liczba1 < liczba2, a ich różnica wynosi co najmniej 3. Wynikiem funkcji jest lista dwóch liczb – najmniejszej liczby parzystej większej od parametru liczba1 i największej liczby parzystej mniejszej od parametru liczba2. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji parzyste(4, 9) jest [6, 8].
  • Wynikiem funkcji parzyste(9, 12) jest [10, 10].
  • Wynikiem funkcji parzyste(14, 75) jest [16, 74].
def parzyste(liczba1, liczba2): # zdefiniuj funkcję i sprawdź jej działanie pass
Wynikiem funkcji parzyste(1,9999) jest [2, 9998].
testResult = parzyste(1,9999)==[2, 9998]
[2, 9998]
parzyste(1,9999)
Wynikiem funkcji parzyste(89898,89901) jest [89900, 89900].
testResult = parzyste(89898,89901)==[89900, 89900]
[89900, 89900]
parzyste(89898,89901)
Wynikiem funkcji parzyste(10,1000000) jest [12, 999998].
testResult = parzyste(10,1000000)==[12, 999998]
[12, 999998]
parzyste(10,1000000)
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 2

Zdefiniuj funkcję nieparzyste(n), której wynikiem jest liczba liczb nieparzystych podzielnych przez 7 nie większych od parametru n. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji nieparzyste(30) jest 2.
  • Wynikiem funkcji nieparzyste(35) jest 3.
  • Wynikiem funkcji nieparzyste(100) jest 7.
def nieparzyste(n): # zdefiniuj funkcję i sprawdź jej działanie pass
Wynikiem funkcji nieparzyste(300) jest 21.
testResult = nieparzyste(300)==21
21
nieparzyste(300)
Wynikiem funkcji nieparzyste(999) jest 71.
testResult = nieparzyste(999)==71
71
nieparzyste(999)
Wynikiem funkcji nieparzyste(987621) jest 70544.
testResult = nieparzyste(987621)==70544
70544
nieparzyste(987621)
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 3

Liczby lustrzane to takie dwie liczby, które są lustrzanym odbiciem, np.: 123 i 321, 79 i 97, 1245 i 5421. Jeżeli zapiszemy razem dowolną liczbę i jej lustrzane odbicie, np. 123321, to tak otrzymana liczba jest podzielna przez 11.

Na przykład:

123321 : 11 = 11211
7997 : 11 = 727
12455421 : 11 = 1132311

Zdefiniuj funkcję lustro_11(liczba), której parametrem jest liczba całkowita dodatnia, a wynikiem iloraz liczby i doklejonej do niej jej liczby lustrzanej przez 11. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji lustro_11(123) jest 11211 (ponieważ 123321 : 11 = 11211).
  • Wynikiem funkcji lustro_11(893) jest 81218 (ponieważ 893398 : 11 = 81218).
def lustro_11(liczba): # zdefiniuj funkcję i sprawdź jej działanie pass
Wynikiem funkcji lustro_11(7) jest 7.
testResult = lustro_11(7)==7
7
lustro_11(7)
Wynikiem funkcji lustro_11(1482) jest 1347531.
testResult = lustro_11(1482)==1347531
1347531
lustro_11(1482)
Wynikiem funkcji lustro_11(947352) jest 86122932159.
testResult = lustro_11(947352)==86122932159
86122932159
lustro_11(947352)
Rozwiąż ćwiczenie

Ćwiczenie dodatkowe 4

Zdefiniuj funkcję dwie(liczba), której wynikiem jest suma cyfry jedności i dziesiątek powiększona o 1, gdy jest liczbą nieparzystą, lub zmniejszona o 1, gdy jest liczbą parzystą. Parametr liczba przyjmuje wartości z zakresu od 10 do 1 000 000. Sprawdź działanie funkcji dla podanych poniżej parametrów.

  • Wynikiem funkcji dwie(1284456) jest 12.
  • Wynikiem funkcji dwie(892339) jest 11.
def dwie(liczba): # zdefiniuj funkcję i sprawdź jej działanie pass
Wynikiem funkcji dwie(11) jest 1.
testResult = dwie(11)==1
1
dwie(11)
Wynikiem funkcji dwie(1221) jest 4.
testResult = dwie(1221)==4
4
dwie(1221)
Wynikiem funkcji dwie(3488677) jest 13.
testResult = dwie(3488677)==13
13
dwie(3488677)
Rozwiąż ćwiczenie
Ta strona wykorzystuje pliki cookies w celu zapewnienia wygody przy korzystaniu z pełnej funkcjonalności. Więcej informacji