home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1991 / 04 / review / sievetay.mod < prev    next >
Text File  |  1991-01-04  |  979b  |  43 lines

  1. (* $Optimize:Speed $LoadTimeInit- $Large- *)
  2. MODULE SieveTaylor;
  3.  
  4. FROM InOut  IMPORT  Read, Write, WriteString, WriteCard, WriteLn;
  5.  
  6. CONST
  7.     Size = 8190;
  8.     ITER = 2000;
  9.  
  10. VAR
  11.     flag                    :ARRAY [0..Size] OF BOOLEAN;
  12.     ch                      :CHAR;
  13.     count                   :CARDINAL;
  14.  
  15. PROCEDURE SieveTest;
  16. VAR  i, j, k, prime   :CARDINAL;
  17. BEGIN
  18.   FOR i := 1 TO ITER DO
  19.       count := 0;
  20.       FOR j := 0 TO Size DO
  21.           flag[j] := TRUE;
  22.       END;
  23.       FOR j := 0 TO Size DO
  24.           IF flag[j] THEN
  25.               prime := j+j+3;
  26.               k := j+prime;
  27.               WHILE k <= Size DO
  28.                   flag[k] := FALSE;
  29.                   INC(k,prime);
  30.               END;
  31.               INC(count);
  32.           END;
  33.       END;
  34.   END;
  35. END SieveTest;
  36.  
  37. BEGIN
  38.     WriteString("Hit a key to start 2000 ITERATIONS");
  39.     Read(ch);  WriteLn;
  40.     SieveTest;
  41.     Write(7C); WriteCard(count,5);
  42. END SieveTaylor.
  43.