Zgodzę się że sito to przy dużej ilości liczb do sprawdzenia. Ale do samego n-1 sprawdzać nie trzeba, bo np skoro 15 / 5 daje 3, to automatycznie dzieli się też przez 3 (i daje 5). Zatem starczy sprawdzić do pierwiastka z liczby (jak jest liczbą całkowitą to liczba nie jest pierwsza, bo jest jej dzielnikiem) jak żadna mniejsza liczba nie jest dzielnikiem, to pomiędzy pierwiastkiem a liczbą też żadnego nie znajdziemy. Zatem liczba jest pierwsza, o ile nie ma pierwiastka będącego liczbą całkowitą, ani dzielników między jedynką i pierwiastkiem.
edit: no chyba że mamy do sprawdzenia jakąś dużą liczbę, to wtedy sito do jej pierwiastka i sprawdzany wszystkie pierwsze mniejsze od niego (zakładając że takowy jest ułamkowy).
edit2: znana jest maksymalna liczba do sprawdzenia? może dało by się wstawić do programu gotową tablicę liczb pierwszych, to znacznie przyśpieszyło by sprawdzanie.