Open
Description
def eratosthenes (n : Nat) : Array Bool := Id.run do
let mut isPrime := Array.mkArray (n + 1) true
isPrime := isPrime.set! 0 false
isPrime := isPrime.set! 1 false
for p in [2 : n + 1] do
if not isPrime[p]! then
continue
let mut q := 2 * p
while q <= n do
isPrime := isPrime.set! q false
q := q + p
return isPrime
def runTest (n : Nat) : IO Unit := do
let l := eratosthenes n
for i in [:l.size] do
if l[i]! then
IO.print s!"{i} "
#eval runTest 19
Metadata
Metadata
Assignees
Labels
No labels