Od sita Eratostenesa po algorytm z pierwiastkiem. Poznaj, jak matematyka i programowanie łączą się w jedno.
Dodatnie liczby naturalne większe od 1, które można przedstawić jako iloczyn dwóch mniejszych liczb naturalnych, nazywamy liczbami złożonymi. Przykłady: 9 = 3·3, 10 = 2·5, 42 = 2·3·7.
Pozostałe liczby (poza 1) to liczby pierwsze – podzielne wyłącznie przez 1 i same siebie. Np. 2, 3, 5, 7, 11, 13, 17, 19…
Jeśli liczba n jest złożona, to przynajmniej jeden z jej czynników jest mniejszy lub równy √n. Dlatego wystarczy sprawdzać dzielniki tylko do √n!
Liczby pierwsze są fundamentem nowoczesnej kryptografii (np. algorytmu RSA — od nazwisk twórców: Rivest, Shamir, Adleman, MIT 1977). Bezpieczeństwo szyfrowania polega na prostym fakcie matematycznym: łatwo jest pomnożyć dwie duże liczby pierwsze, ale praktycznie niemożliwe jest wykonanie operacji odwrotnej — czyli rozkład ich iloczynu z powrotem na czynniki. Dla liczb rzędu 150 cyfr nawet najpotężniejsze współczesne komputery potrzebowałyby miliardów lat.
RSA używa dwóch kluczy: publicznego (znany wszystkim, służy do szyfrowania) i prywatnego (tylko odbiorca może odszyfrować wiadomość). To jak otwarta skrzynka pocztowa przed domem — każdy może włożyć list, ale tylko właściciel ma klucz do skrzynki.
RSA jest używany praktycznie wszędzie w internecie: połączenia HTTPS (kłódka w przeglądarce), bankowość elektroniczna, podpisy cyfrowe i szyfrowane e-maile. Zagrożeniem dla RSA są komputery kwantowe, które mogłyby znacznie przyspieszyć faktoryzację — dlatego już teraz trwają prace nad kryptografią postkwantową.
Algorytm skreśla wielokrotności każdej liczby pierwszej. Liczby, które przetrwają, są pierwsze. Kliknij Następny krok lub Auto, by obserwować działanie dla liczb 1–100.
Algorytm 1: Najprostszy test (sprawdza od 2 do n−1)
Algorytm 2: Ulepszony – z pierwiastkiem i krokiem 2
Kompletny program – definicja funkcji + wywołanie
def CzyPierwsza_v2...) nie daje żadnego widocznego efektu –
to tylko „przepis". Aby program coś zrobił, trzeba funkcję wywołać, czyli użyć jej w kodzie głównym.
Podaj liczbę: 97Liczba pierwsza
Podaj liczbę: 100Liczba złożona
Wywołanie dla wielu liczb jednocześnie
2 – pierwsza
9 – złożona
11 – pierwsza
15 – złożona
97 – pierwsza
100 – złożona
Porównanie liczby operacji
math to plik .py z gotowymi funkcjami matematycznymi.
Importujemy go instrukcją from math import sqrt.
Zawiera też: sin, cos, log, factorial i wiele innych.