Skip to content

Instantly share code, notes, and snippets.

@salma-rodriguez
Forked from narenaryan/sieve.jl
Created December 17, 2018 22:41
Show Gist options
  • Save salma-rodriguez/f0720f31eed82b6b10d4347d7cb27c30 to your computer and use it in GitHub Desktop.
Save salma-rodriguez/f0720f31eed82b6b10d4347d7cb27c30 to your computer and use it in GitHub Desktop.
A Sieve of Eratosthenes implementation in Julia
# 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(round(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