Historical SampleCode, Revision 2

Sieve Of Erathosthenes

include get.e
procedure eratosthenes(integer target)

  sequence sieve
  integer next_prime
  integer limit
  
  sieve = repeat(0, target)
  limit = floor(power(target, 0.5))
  sieve[1] = 1
  next_prime = 2
  while next_prime <= target and next_prime != 0 do
    if next_prime <= limit then
      for i = next_prime + next_prime to target by next_prime do
        sieve[i] = 1
      end for
    end if
    printf(1, "%d ", next_prime)
    next_prime = find_from(0, sieve, next_prime+1)
  end while
  
  return
end procedure

procedure main(sequence argv)
  integer n

  n = 50
  if length(argv) >= 3 then
    argv = value(argv[3])
    n = argv[2]
  end if
  
  eratosthenes(n)
end procedure

main( command_line() )
Not Categorized, Please Help

Search



Quick Links

User menu

Not signed in.

Misc Menu