38 lines
736 B
Julia
38 lines
736 B
Julia
#!/usr/bin/julia
|
|
|
|
function isPrime(number::UInt64)
|
|
if number in [2,3,5]
|
|
return true
|
|
elseif number % 2 == 0
|
|
return false
|
|
end
|
|
|
|
for i ∈ range(3, 2, floor(UInt64, √number))
|
|
if number % i == 0
|
|
return false
|
|
end
|
|
end
|
|
return true
|
|
end
|
|
|
|
function generatePrimeList(number::UInt64)
|
|
primeList = Array{UInt64,1}([2])
|
|
limit = div(number-1, 2)
|
|
|
|
for i ∈ range(3, 2, limit)
|
|
if isPrime(i)
|
|
push!(primeList, i)
|
|
end
|
|
end
|
|
|
|
primeList
|
|
end
|
|
|
|
function euler005(number::UInt64)
|
|
primeList = generatePrimeList(number)
|
|
exponents = floor.(UInt64, log.(primeList, number))
|
|
prod(primeList .^ exponents)
|
|
end
|
|
|
|
euler005(1)
|
|
@time euler005(20)
|