home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / progmisc / euphor10.zip / SIEVE.EX < prev    next >
Text File  |  1993-06-24  |  911b  |  44 lines

  1.            ---------------------------
  2.            -- Byte Magazine's       --
  3.            -- Prime Sieve Benchmark --
  4.            ---------------------------
  5.  
  6. without type_check -- makes no difference
  7.  
  8. constant ITERATIONS = 1000
  9.  
  10. constant SIZE = 8191, 
  11.      ON  = 1, 
  12.      OFF = 0
  13.  
  14. sequence flags 
  15.  
  16. global procedure main()
  17.     integer prime, start, count, still_prime
  18.     atom x
  19.  
  20.     x = time()
  21.     for iter = 1 to ITERATIONS do
  22.     count = 0
  23.     flags = repeat(ON, SIZE)
  24.     for i = 1 to SIZE do
  25.         still_prime = flags[i]
  26.         if still_prime then
  27.         prime = i + i
  28.         prime = prime + 1 
  29.         -- printf(1, "%d ", prime)
  30.         start = prime + i
  31.         for k = start to SIZE by prime do
  32.             flags[k] = OFF
  33.         end for 
  34.         count = count + 1
  35.         end if
  36.     end for
  37.     end for
  38.     printf(1, "%d primes\n", count) -- should be 1899
  39.     printf(1, "%d iterations in %.2f seconds\n", {ITERATIONS, time() - x})
  40. end procedure
  41.  
  42. main()
  43.  
  44.