Napisz program w c++ który wypisuje liczby pierwsze należące do ciągu fibonacciego. Miło było by, gdyby najważniejsze kroki byly co z grubsza wytłumaczone.

Odpowiedź :

Odpowiedź

Kod źródłowy jest w pierwszym załączniku. W drugim podałam jak wyglądają przykładowe wyniki uruchomienia.

Wynik uzyskałam na platformie  replit.  Wynik jest identyczny na wszystkich platformach na których  int  to  int32.

Funkcja  prosty_fibonacci  liczy liczby Fibonacciego prosto z definicji: kolejna liczba to suma dwóch poprzednich, czyli F(n) = F(n - 1) + F(n - 2).

Nieoczywiste może być znaczenie wierszy 7-9. Otóż zanim obliczam kolejną liczbę Fibonacciego sprawdzam czy po dodaniu do siebie przypadkiem nie przekroczę maksymalnej liczby w typie  int.  Jeśli widzę, że bym przekroczyła, to kończę program odpowiednim komunikatem. Natomiast exit(EXIT_SUCCES)  jest to coś czego się używa gdy się kończy program wewnątrz funkcji. (Tak po prostu jest.)

Program sprawdzający czy liczba jest pierwsza też jest prosty, bo prymitywnie po kolei usiłuje podzielić.

Program główny mam nadzieję, że wygląda prosto i zrozumiale. :-)  Po kolei w nieskończonej pętli liczone są kolejne liczby Fibonacciego i po każdym wyliczeniu sprawdzam czy jest to liczba pierwsza. Jeśli jest, to jest ona drukowana.

Pętla jest  nieskończona ponieważ program zostanie zakończony z wnętrza funkcji  prosty_fibonacci.

Wyjaśnienie

Jeżeli zamiast  int  konsekwentnie użyłabym  unsigned int,  to program znalazłby jeszcze jedna taką liczbę.  A jeśli zamiast  int  użyłabym  long long int  albo  unsigned long long int, to program znalazłby dwie więcej.

Zobacz obrazek 0AB
Zobacz obrazek 0AB