//z poprzedniego zakresu lub otrzymaliśmy resztę równą 0 //kończymy działanie pętli
10. else{
11. flagapoz++;//jeśli nie zwiększamy zmienną flagapoz
12. }
14. if(flagapoz==illiczb){
15. nilliczb++;//jeśli wartości zmiennych flagapoz i illiczb są takie same
//oznacza to że podczas dzielenia ani razu nie otrzymaliśmy //reszty 0, co wskazuje iż liczba jest pierwsza
16. liczp[nilliczb]=liczba;//więc zapisujemy ją na tablicy
17. }
18. }
Zmieńmy teraz 13 linie źródła i, aby wykluczyć sprawdzanie liczb parzystych, a tym samym zmniejszyć ilość powtórzeń pętli o połowę. Wystarczy zmienną, operującą pętlą, zwiększać o 2 przy każdym przejściu pętli. Musimy przy tym zacząć od liczby nieparzystej.
--------------ŹRÓDŁO 3--------------
1. for(liczba=9; liczba<=100; liczba+=2){
Dodajmy jeszcze funkcję pauza, która zatrzyma działanie programu po wyświetleniu każdych 23 linii wyników i umożliwi wyświetlenia kolejnych wyników lub wyjście z programu. Funkcja ma postać:
--------------ŹRÓDŁO 4--------------
1. void pauza()
3. char znak;
4. if(ilwierszy==24) {
5. printf("[Enter] - następna strona wyników; [k] - koniec programu");
6. if((znak=getchar())!='k'){
7. clrscr();
8. ilwierszy=0;
10. else{
11. exit(0);
12. }
Odwołanie do funkcji umieśćmy po wypisaniu na ekranie znalezionej liczby pierwszej. Funkcja wykorzystuje zmienną globalną iiwierszy, która powiększa swoją wartość o jeden po każdym wypisaniu wyniku.
Otwieranie wyższych zakresów
Podzielmy zgromadzony kod na funkcje. Zmienne ze źródła l określmy jako globalne. Linie 7-11 z tego samego źródła umieśćmy w funkcji init. Z pozostałej części kodu stwórzmy funkcję szukaj i przenieśmy zmienne flaga, flagapoz oraz j do tej funkcji w postaci zmiennych lokalnych. Dołączmy jeszcze bibliotekę conio.h i zastosujmy funkcję clrscr o w procedurze init. Dodajmy jeszcze zmienne minz i maxz, którymi będziemy regulować prace pętli for w funkcji szukaj. Do całości dołączmy funkcje pauza.
3