Liczby pierwsze schemat blokowy

0

Witam
Na końcu znajduje się załącznik ze zdjęciem przykładu.
Schemat blokowy algorytm sprawdzający, czy podana liczba jest liczbą pierwszą
(liczba pierwsza to taka liczba, która bez reszty dzieli się tylko przez samą siebie i przez 1)

Zacząłem analizować i nie zgadza mi się tok postępowania.
Funkcja trunc , Trunc

Zakładam że moja liczba A = 7.
P – zmienna pamiętająca, czy liczba była podzielona bez reszty.
Przykład : 4:2 , nie ma reszty więc P:=1 ,zgadza się ?
5:2 , jest reszta więc P:=0 ,zgadza się ?

Analiza schematu
1-- liczba A= 7 (na czerwono 1)
2-- (na czerwono 2 - NIE ) idziemy do punktu 3 , wybieramy NIE , przechodzimy do punktu 4.
Zakładamy P:=1 ( czyli dzielenie bez reszty np. 10:5 )

Punkt 5 , sprawdzamy trunc(7/2). Tu nie jestem pewien kiedy wybieramy TAK a kiedy NIE.
Przypuszczam że wybiorę TAK, ponieważ funkcja wg definicji obcina część ułamkową.
Przechodzę do punktu 6 , zakładam P:=0 ( jest reszta z dzielenia )

Punkt 7 I=2+1 ; I=3
Punkt 8; 3 <= sqrt(7) ; 3 <= 2,64 wynik: NIE , przechodzimy do
Punkt 9 [ P=1] , to jest fałsz , wynik NIE , przechodzimy do
Punkt 10 , wypisz „NIE”

Powinien być wynik „TAK”
Co jest błędnego w moim toku rozumowania ?

Proszę o podanie książek w której znajdują się przykłady schematów blokowych.

Z Góry Dziękuję

0

@pipu123 napisał

Przykład : 4:2 , nie ma reszty więc P:=1 ,zgadza się ?
5:2 , jest reszta więc P:=0 ,zgadza się ?

Nie zgadza się, jest dokładnie odwrotnie.
Algorytm może jest i poprawny, ale jest bardzo nieefektywny. Po znalezieniu dzielnika (P = 0) należy wyjść z pętli z komunikatem, że liczba jest pierwsza. A algorytm sprawdza kolejne dzielniki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1