From 28ba539204d757bf049f7f97fdfbea7ef6868678 Mon Sep 17 00:00:00 2001 From: daviddoji Date: Wed, 5 Apr 2023 22:04:20 +0200 Subject: [PATCH] Reduce allocations and refactoring --- src/Julia/Problems001-050/Problem012.jl | 18 ++++++++++-------- src/Julia/Problems001-050/Problem014.jl | 16 +++++++++------- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/src/Julia/Problems001-050/Problem012.jl b/src/Julia/Problems001-050/Problem012.jl index 6ccf1a6..10f51ef 100644 --- a/src/Julia/Problems001-050/Problem012.jl +++ b/src/Julia/Problems001-050/Problem012.jl @@ -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()) diff --git a/src/Julia/Problems001-050/Problem014.jl b/src/Julia/Problems001-050/Problem014.jl index e32a3f5..36dbfba 100644 --- a/src/Julia/Problems001-050/Problem014.jl +++ b/src/Julia/Problems001-050/Problem014.jl @@ -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())