home *** CD-ROM | disk | FTP | other *** search
/ The Unsorted BBS Collection / thegreatunsorted.tar / thegreatunsorted / programming / misc_programming / TEST / SIEVE.ADA < prev    next >
Encoding:
Text File  |  1990-06-28  |  870 b   |  40 lines

  1.  
  2.  
  3.  
  4. --           Test program for Meridian Ada compiler.            --
  5. --    This program computes prime numbers by using a sieve.     --
  6. --      Copyright (C) 1986 Meridian Software Systems, Inc.      --
  7.  
  8. with ada_io; use ada_io;
  9. procedure sieve is
  10.   pragma suppress(index_check);
  11.   size: constant integer := 8190;
  12.   flags: array(0..size) of boolean;
  13.   i, k, prime: integer;
  14.   count: integer := 0;
  15. begin
  16.   for i in flags'range loop
  17.     flags(i) := true;
  18.   end loop;
  19.   for i in 0..size loop
  20.     if flags(i) then
  21.       prime := 2*i+3;
  22.       k := i + prime;
  23.       while k <= size loop
  24.     flags(k) := false;
  25.     k := k+prime;
  26.       end loop;
  27.       if count mod 12 = 0 then
  28.     new_line;
  29.       end if;
  30.       put(prime, width => 6);
  31.       count := count + 1;
  32.     end if;
  33.   end loop;
  34.  
  35.   new_line;
  36.   put(count);
  37.   put(" primes.");
  38.   new_line;
  39. end;
  40.