Reduce allocations and refactoring
This commit is contained in:
parent
9983ee23d6
commit
28ba539204
@ -4,8 +4,9 @@ Created on 21 Jul 2021
|
||||
@author: David Doblas Jiménez
|
||||
@email: daviddoji@pm.me
|
||||
|
||||
Solution for Problem 12 of Project Euler
|
||||
https://projecteuler.net/problem=12 =#
|
||||
Solution for Problem 012 of Project Euler
|
||||
https://projecteuler.net/problem=12
|
||||
=#
|
||||
|
||||
using BenchmarkTools
|
||||
|
||||
@ -16,7 +17,7 @@ function num_divisors(number::Int64)
|
||||
end
|
||||
|
||||
|
||||
function Problem12()
|
||||
function Problem012()
|
||||
#=
|
||||
The sequence of triangle numbers is generated by adding the natural
|
||||
numbers. So the 7th triangle number would be:
|
||||
@ -38,9 +39,10 @@ function Problem12()
|
||||
We can see that 28 is the first triangle number to have over five divisors.
|
||||
|
||||
What is the value of the first triangle number to have over five hundred
|
||||
divisors? =#
|
||||
divisors?
|
||||
=#
|
||||
|
||||
ans::Int64 = 0
|
||||
ans = 0
|
||||
for number in Iterators.countfrom(1)
|
||||
ans += number
|
||||
if num_divisors(ans) > 500
|
||||
@ -50,7 +52,7 @@ function Problem12()
|
||||
end
|
||||
|
||||
|
||||
println("Time to evaluate Problem $(lpad(12, 3, "0")):")
|
||||
@btime Problem12()
|
||||
println("Took:")
|
||||
@btime Problem012()
|
||||
println("")
|
||||
println("Result for Problem $(lpad(12, 3, "0")): ", Problem12())
|
||||
println("Result for Problem $(lpad(12, 3, "0")): ", Problem012())
|
||||
|
@ -4,8 +4,9 @@ Created on 24 Jul 2021
|
||||
@author: David Doblas Jiménez
|
||||
@email: daviddoji@pm.me
|
||||
|
||||
Solution for Problem 14 of Project Euler
|
||||
https://projecteuler.net/problem=14 =#
|
||||
Solution for Problem 014 of Project Euler
|
||||
https://projecteuler.net/problem=14
|
||||
=#
|
||||
|
||||
using BenchmarkTools
|
||||
|
||||
@ -18,7 +19,7 @@ function chain_length(n)
|
||||
return length
|
||||
end
|
||||
|
||||
function Problem14()
|
||||
function Problem014()
|
||||
#=
|
||||
The following iterative sequence is defined for the set of positive
|
||||
integers:
|
||||
@ -37,7 +38,8 @@ function Problem14()
|
||||
|
||||
Which starting number, under one million, produces the longest chain?
|
||||
|
||||
NOTE: Once the chain starts the terms are allowed to go above one million. =#
|
||||
NOTE: Once the chain starts the terms are allowed to go above one million.
|
||||
=#
|
||||
|
||||
ans = 0
|
||||
limit = 1_000_000
|
||||
@ -53,7 +55,7 @@ function Problem14()
|
||||
end
|
||||
|
||||
|
||||
println("Time to evaluate Problem $(lpad(14, 3, "0")):")
|
||||
@btime Problem14()
|
||||
println("Took:")
|
||||
@btime Problem014()
|
||||
println("")
|
||||
println("Result for Problem $(lpad(14, 3, "0")): ", Problem14())
|
||||
println("Result for Problem $(lpad(14, 3, "0")): ", Problem014())
|
||||
|
Loading…
x
Reference in New Issue
Block a user