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 / BADSIEVE.MZD / BADSIEVE.MOD
Text File  |  2000-06-30  |  1KB  |  41 lines

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