Test pierwszości¶
Opis problemu¶
Implementacja¶
Opis¶
Funkcja isPrime
przyjmuje jeden argument: liczbę n
, którą chcemy sprawdzić pod kątem bycia liczbą pierwszą.
- Sprawdzenie warunków wstępnych: Najpierw funkcja sprawdza, czy
n
jest mniejsze niż 2. Liczby mniejsze niż 2 nie są liczbami pierwszymi, więc w takim przypadku funkcja zwracaFalse
. - Weryfikacja dzielników: następnie, funkcja używa wyrażenia
any
w połączeniu z funkcją pomocnicządivides
, aby sprawdzić, czy jakakolwiek liczba z zakresu od 2 do pierwiastka kwadratowego zn
jest dzielnikiemn
. Jeśli tak jest, ton
nie jest liczbą pierwszą i funkcja zwracaFalse
. - Optymalizacja: sprawdzanie dzielników jest ograniczone do pierwiastka kwadratowego z
n
, co jest znaczącą optymalizacją. Dzięki temu algorytm działa szybciej, nie tracąc na dokładności.
Definiujemy również pomocniczą funkcję divides
, która przyjmuje dwa argumenty: x
i n
. Sprawdza ona, czy x
jest dzielnikiem n
, co jest realizowane przez sprawdzenie, czy reszta z dzielenia n
przez x
wynosi zero.
W części main
programu, definiujemy liczbę n
(w tym przypadku 13) i używamy funkcji isPrime
, aby sprawdzić, czy jest to liczba pierwsza. Wynik jest następnie wyświetlany.
- Jeśli funkcja zwraca
True
, oznacza to, żen
jest liczbą pierwszą. - Jeśli funkcja zwraca
False
, liczba ta nie jest liczbą pierwszą.