Eratosthenes 的篩子

Julia 的餘數運算子是%運算子。此運算子的行為類似於使用 C 和 C++等語言的%a % b 是將 a 劃分為 b 後留下的簽名餘數。

此運算子對於實現某些演算法非常有用,例如以下 Eratosthenes 篩選的實現。

iscoprime(P, i) = !any(x -> i % x == 0, P)

function sieve(n)
    P = Int[]
    for i in 2:n
        if iscoprime(P, i)
            push!(P, i)
        end
    end
    P
end

用法:

julia> sieve(20)
8-element Array{Int64,1}:
  2
  3
  5
  7
 11
 13
 17
 19