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
njest 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
anyw połączeniu z funkcją pomocnicządivides, aby sprawdzić, czy jakakolwiek liczba z zakresu od 2 do pierwiastka kwadratowego znjest dzielnikiemn. Jeśli tak jest, tonnie 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, żenjest liczbą pierwszą. - Jeśli funkcja zwraca
False, liczba ta nie jest liczbą pierwszą.