home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / progmisc / euphor10.zip / SIEVE.PRO < prev    next >
Text File  |  1993-06-05  |  1KB  |  44 lines

  1.        |           ---------------------------
  2.        |           -- Byte Magazine's       --
  3.        |           -- Prime Sieve Benchmark --
  4.        |           ---------------------------
  5.        |
  6.        |without type_check -- makes no difference
  7.        |
  8.        |constant ITERATIONS = 1 -- was 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.      1 |    x = time()
  21.      1 |    for iter = 1 to ITERATIONS do
  22.      1 |    count = 0
  23.      1 |    flags = repeat(ON, SIZE)
  24.      1 |    for i = 1 to SIZE do
  25.   8191 |        still_prime = flags[i]
  26.   8191 |        if still_prime then
  27.   1899 |        prime = i + i
  28.   1899 |        prime = prime + 1 
  29.        |        -- printf(1, "%d ", prime)
  30.   1899 |        start = prime + i
  31.   1899 |        for k = start to SIZE by prime do
  32.  14999 |            flags[k] = OFF
  33.        |        end for 
  34.   1899 |        count = count + 1
  35.        |        end if
  36.        |    end for
  37.        |    end for
  38.      1 |    printf(1, "%d primes\n", count) -- should be 1899
  39.      1 |    printf(1, "%d iterations in %.2f seconds\n", {ITERATIONS, time() - x})
  40.        |end procedure
  41.        |
  42.      1 |main()
  43.  
  44.