From de1375d3f3adfa64ca3c12d8fa8496341c9725d0 Mon Sep 17 00:00:00 2001 From: daviddoji Date: Fri, 7 Oct 2022 21:17:37 +0200 Subject: [PATCH] Reduce allocations and formatting --- src/Julia/Problems001-050/Problem007.jl | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/Julia/Problems001-050/Problem007.jl b/src/Julia/Problems001-050/Problem007.jl index a50b223..728b40f 100644 --- a/src/Julia/Problems001-050/Problem007.jl +++ b/src/Julia/Problems001-050/Problem007.jl @@ -9,6 +9,8 @@ https://projecteuler.net/problem=7 =# using BenchmarkTools using Primes +using Transducers + function Problem7() #= @@ -16,16 +18,21 @@ function Problem7() we can see that the 6th prime is 13. What is the 10_001st prime number =# - number = 2 - primeList = Int[] - while length(primeList) < 10_001 + + count::Int32 = 10_000 + # 2 is prime but not included to speed-up + # 150_000 should be big enough to find 10_000 primes + for number::Int32 in 1:2:150_000 if isprime(number) - append!(primeList, number) + count -= 1 + if count == 0 + return number + end end - number += 1 end - return primeList[length(primeList)] + # prime_list::Vector{Int64} = primes(250_000) + # return prime_list[10_001] end