I would like to create an `Iterator`

for prime numbers (I know there is a package `Primes`

). Based on Pythons code for the `Sieve of Eratosthenes`

I coded a function `sieve()`

. `sieve(10)`

returns a vector of the first 10 primes.

What must be done to turn this into en `Iterator`

so that it calculates one prime at a time when you want the next prime?

Thanks for any advice! I’m quite new to Julia and coming from Python I look for an (easy) alternative for `generators`

.

```
function sieve(n::Int64)::Vector{Int64}
D = Dict{Int64, Vector{Int64}}()
P = Vector{Int64}()
q = 2
counter = 0
while counter < n
if !(q in keys(D))
D[q * q] = Int64[q] # Vector{Int64}([q])
push!(P, q)
counter += 1
else
for p in D[q]
haskey(D, p+q) ? push!(D[p+q], p) : D[p+q] = [p]
end
delete!(D, q)
end
q += 1
end
return P
end
```