are_we_fast_yet/sieve.fz
# ported from: https://github.com/smarr/are-we-fast-yet/blob/master/benchmarks/Java/src/Sieve.java
public sieve
post result = 669
=>
sieve(flags Mutable_Array bool, size i32) =>
prime_count := mut 0
for i:=2, i+1 while i <= size do
if flags[i - 1]
prime_count <- prime_count.get + 1
k := mut (i + i)
while k.get <= size
flags[k.get - 1] := false
k <- k.get + i
prime_count.get
count := 5000
mi : mutate is
mi.go ()->
r := sieve ((mutate.array bool).type.new mi count true) count
say r
r
last changed: 2023-11-14