changed file and folder names to a sane scheme
This commit is contained in:
parent
c19129e6dd
commit
b725343392
34 changed files with 44 additions and 0 deletions
41
e0003/euler0003.jl
Executable file
41
e0003/euler0003.jl
Executable file
|
@ -0,0 +1,41 @@
|
|||
#!/usr/bin/julia
|
||||
|
||||
function isPrime(number)
|
||||
if number in [2,3, 5]
|
||||
return true
|
||||
elseif number % 2 == 0
|
||||
return false
|
||||
end
|
||||
|
||||
for i ∈ range(3, 2, floor(Int64, √number))
|
||||
if number % i == 0
|
||||
return false
|
||||
end
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
function findDivisors(number)
|
||||
divisors = Set{Int64}(1)
|
||||
LIMIT = trunc(√number)
|
||||
for num ∈ 2:LIMIT
|
||||
if number % num == 0
|
||||
push!(divisors, num)
|
||||
continue
|
||||
end
|
||||
end
|
||||
|
||||
union!(divisors, map(x -> div(number, x), divisors))
|
||||
return divisors
|
||||
end
|
||||
|
||||
function euler003(number)
|
||||
divisors = findDivisors(number)
|
||||
primeFactors = filter(isPrime, divisors)
|
||||
println("$(number) -> $(maximum(primeFactors))")
|
||||
end
|
||||
|
||||
# trigger compilation
|
||||
euler003(3)
|
||||
# now solve the actual task
|
||||
@time euler003(600851475143)
|
10
e0003/euler0003.rkt
Normal file
10
e0003/euler0003.rkt
Normal file
|
@ -0,0 +1,10 @@
|
|||
#lang racket
|
||||
|
||||
(require math/number-theory)
|
||||
|
||||
(define (max-prime-factor x)
|
||||
(if (prime? x) x
|
||||
(for/or ((i (filter prime? (range 2 (sqrt x)))))
|
||||
(if (zero? (remainder x i)) (max-prime-factor (quotient x i)) #f))))
|
||||
|
||||
(max-prime-factor 600851475143)
|
Reference in a new issue