在 Julia 中列出素数的更有效方法
More efficient way to list prime numbers in Julia
我不确定如何在一个函数的数组中列出素数。由于可能的代码被分成两个函数,我猜测这对性能有重大影响。
我怎样才能让下面的代码更有效率?
function prime_check(n)
primes = []
trash = []
for i in 2:n-1
if n%i == 0
push!(trash, 1)
end
end
if length(trash) == 0
push!(primes, n)
end
return primes
end
function prime_list(n)
list = []
for i in 2:n
if length(prime_check(i)) > 0
push!(list, prime_check(i)[1])
end
end
return list
end
如果您不介意使用一些包来优化您的代码,我建议使用“Primes.jl”。
要安装它,运行:
Pkg.add("Primes")
来自 Julia REPL。
这个包有一些函数用于因式分解、素数识别、素数生成器等。
Primes.isprime — 函数。
isprime(n::Integer) -> Bool
示例:
julia> isprime(3)
true
希望对您有所帮助。
我不确定如何在一个函数的数组中列出素数。由于可能的代码被分成两个函数,我猜测这对性能有重大影响。
我怎样才能让下面的代码更有效率?
function prime_check(n)
primes = []
trash = []
for i in 2:n-1
if n%i == 0
push!(trash, 1)
end
end
if length(trash) == 0
push!(primes, n)
end
return primes
end
function prime_list(n)
list = []
for i in 2:n
if length(prime_check(i)) > 0
push!(list, prime_check(i)[1])
end
end
return list
end
如果您不介意使用一些包来优化您的代码,我建议使用“Primes.jl”。
要安装它,运行:
Pkg.add("Primes")
来自 Julia REPL。
这个包有一些函数用于因式分解、素数识别、素数生成器等。
Primes.isprime — 函数。
isprime(n::Integer) -> Bool
示例:
julia> isprime(3)
true
希望对您有所帮助。