home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS - Coast to Coast / simteldosarchivecoasttocoast.iso / pcmag / vol6n20.zip / FIGURES.ZIP / FIGURE.10 < prev    next >
Text File  |  1987-10-16  |  635b  |  23 lines

  1. PROGRAM DoSieve;
  2. CONST  Max = 1000;
  3. VAR  Sieve : ARRAY[1..Max] OF Boolean;
  4.      I, K : Integer;
  5. BEGIN
  6.   FillChar(Sieve, SizeOf(Sieve), True);
  7.   FOR I := 2 TO Max DIV 2 DO {Only have to go to halfway mark}
  8.     BEGIN
  9.       IF Sieve[I] THEN {IF I has not yet been eliminated}
  10.         BEGIN
  11.           K := I+I;    {K starts as first multiple of I }
  12.           REPEAT
  13.             Sieve[K] := False;
  14.             K := K+I;  {More multiples of I }
  15.           UNTIL K > Max;
  16.         END;
  17.     END;
  18.   WriteLn('CALCULATION COMPLETE!  Primes to ',Max,' are:');
  19.   FOR I := 1 TO Max DO
  20.     IF Sieve[I] THEN
  21.       Write(I:8);
  22. END.
  23.