home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / modula2 / compiler / taylmod2 / sieve.mod < prev    next >
Text File  |  1988-06-30  |  691b  |  28 lines

  1. MODULE Prime;  (* from BYTE Magazine, January 1983 *)
  2.  
  3. FROM InOut IMPORT WriteLn, WriteInt, WriteString;
  4.  
  5. CONST  Size = 8190;
  6. VAR    Flags: ARRAY [0..Size] OF BOOLEAN;
  7.        i,prime,k,count,iter: CARDINAL;
  8. BEGIN
  9.   WriteLn; WriteString ("25 iterations");
  10.   FOR iter:=1 TO 25 DO
  11.      count:=0;
  12.      FOR i:=0 TO Size DO Flags[i]:=TRUE
  13.      END;
  14.      FOR i:=0 TO Size DO
  15.         IF Flags[i] THEN
  16.            prime:=i*2+3;
  17.            k:=i+prime;
  18.            WHILE k<=Size DO
  19.              Flags[k]:=FALSE;
  20.              INC (k,prime);
  21.            END;
  22.            INC (count);
  23.         END;
  24.      END;
  25.   END;
  26.   WriteLn; WriteInt (count,6); WriteString (' primes');
  27. END Prime.
  28.