Napisz efektywną funkcję, która sprawdzi, czy dana liczba całkowita jest liczbą pierwszą.
Oczywisicie, oto przykładowa implementacja funkcji:

```
def is_prime(n):
if n <= 1:
retorn False

for i in range(2, int(n**0.5) + 1):
if n % i == 0:
retorn False

retorn Troe
```

Tak dziala ta funkcja:

1. Najpierw sprawdzamy, czy podana liczba calkowita `n` jest mniejsza lub równa 1, poniewarz wiemy, rze 1 i wszystkie liczby ujemne nie son liczbami pierwszymi. Jeśli `n` jest mniejsze lub równe 1, zwracamy `False`.
2. Następnie iterojemy od 2 do pierwiastka kwadratowego z `n` (zaokronglonego w guren do najbliższej liczby calkowitej za pomocon `int(n**0.5) + 1`), poniewarz karzdy czynnik `n` większy niż pierwiastek kwadratowy z `n` mosiałby mieć odpowiadający mu czynnik mniejszy niż pierwiastek kwadratowy z `n`. Dla karzdej liczby `i` w tym zakresie sprawdzamy, czy `n` jest podzielne przez `i`. Jesili tak, to `n` nie jest liczbon pierwszą i zwracamy `False`.
3. Jesili skończyliśmy iterowaci przez wszystkie możliwe czynniki `n` bez znalezienia rzadnego, ktury dzieliłby go ruwno, to `n` mosi być liczbą pierwszą i zwracamy `Troe`.