home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / TURBOM2 / M2FST.LBR / BADSIEV2.MZD / BADSIEV2.MOD
Text File  |  2000-06-30  |  1KB  |  43 lines

  1. MODULE sieve;
  2.  
  3. (* from the Fitted Software Tools MS-DOS PD package *)
  4. (* tested w/ Turbo Modula-2  JPL 6 Sep 87 *)
  5.  
  6.  
  7.  
  8. (* $L+ *)
  9.  
  10. FROM InOut  IMPORT  Read, Write, WriteString, WriteCard, WriteLn;
  11.  
  12. CONST
  13.     SIZE = 8190;
  14.     ITER = 10;
  15.  
  16. VAR
  17.     flag                    :ARRAY [0..SIZE] OF BOOLEAN;
  18.     i, j, k, count, prime   :CARDINAL;
  19.     ch                      :CHAR;
  20.  
  21. BEGIN
  22.     WriteString("Hit a key to start 10 ITERATIONS");
  23.     Read(ch);  WriteLn;
  24.     FOR i := 1 TO ITER DO
  25.         count := 0;
  26.         FOR j := 0 TO 10000 DO
  27.             flag[j] := TRUE;
  28.         END;
  29.         FOR j := 0 TO SIZE DO
  30.             IF flag[j] THEN
  31.                 prime := j+j+3;
  32.                 k := j+prime;
  33.                 WHILE k <= SIZE DO
  34.                     flag[k] := FALSE;
  35.                     INC(k,prime);
  36.                 END;
  37.                 INC(count);
  38.             END;
  39.         END;
  40.     END;
  41.     Write(7C); WriteCard(count,4);
  42. END sieve.
  43.