while(flaga!=0)
47. if(j>illiczb II liczba%liczp[j]==0){
48. flaga=0;
50. else{
51. flagapoz++;
54. if(flagapoz==illiczb){
55. nilliczb++;
56. liczp[nilliczb]=liczba;
57. printf("%i\n",liczba);//jeśli liczba jest pierwsza to ją wypisujemy
58. ilwierszy++;//zwiększamy zmienną przechowującą ilość wykorzystanych
//wierszy na ekranie
59. pauza();//i odwołujemy się do funkcji pauza
60. )
61. )
62. }
63. main()
64. {
65. init();
66. minz=9;
67. maxz=100;
68. szukaj ();
69. minz=101;
70. maxz=10000;
71. szukaj();
72. minz=10001;
73. maxz=l00000000;
74 . szukaj();
75. getchar();
76. }
W liniach 66-74 określamy ramy zakresów (zmienne minz i maxz) i wywołujemy funkcję szukaj, która sprawdza liczby z kolejnych zakresów na podstawie zgromadzonych wcześniej na tablicy danych. Powyższy kod wyszukuje liczby pierwsze mniejsze od 108. Kolejny zakres obejmowałby liczby od 100000001 do 1016, jednak próba sprawdzenia tak dużych liczb powoduje pojawienie się nowych problemów.
Jeszcze wyższe zakresy
Część liczb ze zbioru od 100000001 do 1016 wykracza poza zakres zmiennej liczba w której są przechowywane sprawdzane wartości. Nie będzie więc możliwe wykonywanie obliczeń ani operowanie pętlą for w procedurze szukaj. Wykorzystajmy nową zmienną do operowania tą pętlą. Dodajmy też drugą pętlę for. Ujmując schematycznie uzyskamy:
--------------ŹRÓDŁO 5--------------
1. for(int X=1; X<=100000000; X++){
2. for(int Y=l; Y<=100000000; Y++){
3. //komendy
4. }
5. >
5