I_P_W14_M03 Czy liczba jest liczbą pierwszą?
Liczby pierwsze
Na początek przyjrzyjmy się grupie liczb nazywanych pierwszymi. Należą do nich np.:
2,
3,
5,
7,
11,
13,
17.
Na pierwszy rzut oka trudno zauważyć jakąkolwiek właściwość, która byłaby wspólna dla wszystkich wymienionych wyżej liczb. Łączy je jednak pewna zależność dotycząca ich dzielników.
Przypomnijmy więc – dana liczba jest liczbą pierwszą, jeśli spełnia dwa warunki:
jest liczbą naturalną większą od 1,
posiada tylko dwa dzielniki: 1 oraz samą siebie.
Spróbujmy napisać algorytm w postaci pseudokodu, który sprawdzi, czy dana liczba jest liczbą pierwszą.
Specyfikacja:
Dane:
liczba– liczba do sprawdzenia; liczba naturalna dodatnia
Wynik:
Program wypisuje komunikat Liczba jest liczbą pierwszą lub Liczba nie jest liczbą pierwszą.
Zaczynamy od wprowadzenia liczby, która ma zostać sprawdzona, i zapisania jej w zmiennej liczba. Następnie deklarujemy zmienną logiczną czyPierwsza, której wartość będzie wskazywać, czy dana liczba spełnia warunki liczby pierwszej, czy też nie.
Kolejnym krokiem jest sprawdzenie w instrukcji warunkowej, czy wprowadzona liczba jest mniejsza lub równa 1. Jeśli ten warunek jest spełniony, dana liczba na pewno nie będzie liczbą pierwszą. Dlatego zmiennej logicznej czyPierwsza zostaje przypisana wartość fałsz.
W przeciwnym przypadku następuje sprawdzenie dzielników danej liczby z przedziału . Jeżeli w zadanym przedziale zostanie znaleziony dzielnik, to liczba ta nie jest liczbą pierwszą. Sprawdzenie odbywa się w instrukcji warunkowej wewnątrz pętli. Wyrażenie mod oznacza operację modulo (w wielu językach programowania oznaczana symbolem %), czyli zwraca resztę z dzielenia liczby przez i.
Słownik
liczba, która dzieli bez reszty daną liczbę całkowitą
dzielniki danej liczby mniejsze od niej samej