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 / LANGUAGS / MODULA2 / MTMOD2.LBR / MTSIEV.MZD / MTSIEV.MOD
Text File  |  2000-06-30  |  768b  |  50 lines

  1. MODULE MTSIE10; 
  2.  
  3. (* Sieve test with ten iterations *)
  4.  
  5.   FROM InOut
  6.     IMPORT WriteLn, WriteString, WriteInt;
  7.  
  8.  
  9.   CONST 
  10.     SIZE = 7000; 
  11.  
  12.   VAR 
  13.     I, PRIME, K, COUNT, ITER: INTEGER; 
  14.     FLAGS: ARRAY [0..SIZE] OF BOOLEAN; 
  15.  
  16. BEGIN 
  17.  
  18.   WriteString('START TEN ITERATIONS'); 
  19.   WriteLn; 
  20.   FOR ITER := 1 TO 10 DO 
  21.  
  22.     COUNT := 0; 
  23.     FOR I := 0 TO SIZE DO 
  24.  
  25.       FLAGS[I] := TRUE
  26.     END; 
  27.     FOR I := 0 TO SIZE DO 
  28.  
  29.       IF FLAGS[I] THEN 
  30.  
  31.         PRIME := I+I+3; 
  32.         K := I+PRIME; 
  33.         WHILE K <= SIZE DO 
  34.  
  35.           FLAGS[K] := FALSE; 
  36.  
  37.           INC(K, PRIME)
  38.         END; 
  39.  
  40.         INC(COUNT)
  41.       END
  42.     END; 
  43.  
  44.   END; 
  45.   WriteInt(COUNT,8); 
  46.   WriteString(' PRIMES'); 
  47.   WriteLn; 
  48.  
  49. END MTSIE10.
  50.