Skip to content

Instantly share code, notes, and snippets.

@Ismael-VC
Forked from narenaryan/sieve.jl
Last active August 29, 2015 14:23
Show Gist options
  • Save Ismael-VC/b27c6842279c34b102a2 to your computer and use it in GitHub Desktop.
Save Ismael-VC/b27c6842279c34b102a2 to your computer and use it in GitHub Desktop.
# Sieve of Eratosthenes, docstrings coming in Julia 0.4
function es(n::Int64) # accepts one 64 bit integer argument
isprime = ones(Bool, n) # n-element vector of true-s
isprime[1] = false # 1 is not a prime
for i in 2:int64(sqrt(n)) # loop integers from 2 to sqrt(n), explicit conversion to integer
if isprime[i] # conditional evaluation
for j in (i*i):i:n # sequence from i^2 to n with step i
isprime[j] = false # j is divisible by i
end
end
end
return filter(x -> isprime[x], 1:n) # filter using anonymous function
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment