R78GBM2ZZ46P3
Grafika przedstawia namalowane kredkami cyfry w różnych kolorach oraz różnej wielkości.

I_P_W14_M03 Czy liczba jest liczbą pierwszą?

Źródło: Gerald, dostępny w internecie: pixabay.com, domena publiczna.

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.

Problem 1

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ą.

Linia 1. liczba ← wprowadź liczbę naturalną. Linia 2. czyPierwsza ← prawda. Linia 4. jeżeli liczba otwórz nawias ostrokątny znak równości 1 dwukropek. Linia 5. czyPierwsza ← fałsz. Linia 6. w przeciwnym razie dwukropek. Linia 7. i ← 2. Linia 8. dopóki i asterysk i otwórz nawias ostrokątny znak równości liczba dwukropek. Linia 9. jeżeli liczba mod i znak równości 0 dwukropek. Linia 10. czyPierwsza ← fałsz. Linia 11. przerwij pętlę. Linia 12. i ← i plus 1. Linia 14. jeżeli czyPierwsza znak równości prawda dwukropek. Linia 15. wypisz cudzysłów Liczba jest liczbą pierwszą cudzysłów. Linia 16. w przeciwnym razie dwukropek. Linia 17. wypisz cudzysłów Liczba nie jest liczbą pierwszą cudzysłów.

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 2 , liczba . 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

dzielnik
dzielnik

liczba, która dzieli bez reszty daną liczbę całkowitą

dzielniki właściwe
dzielniki właściwe

dzielniki danej liczby mniejsze od niej samej