Files
project-euler/src/Julia/Problems001-050/Problem038.jl
David Doblas Jiménez d9c96f32cf Fix EOF
2021-10-27 11:27:14 +02:00

55 lines
1.4 KiB
Julia
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#=
Created on 08 Sep 2021
@author: David Doblas Jiménez
@email: daviddoji@pm.me
Solution for Problem 38 of Project Euler
https://projecteuler.net/problem=38 =#
using BenchmarkTools
function Problem38()
#=
Take the number 192 and multiply it by each of 1, 2, and 3:
192 × 1 = 192
192 × 2 = 384
192 × 3 = 576
By concatenating each product we get the 1 to 9 pandigital,
192384576. We will call 192384576 the concatenated product of
192 and (1,2,3)
The same can be achieved by starting with 9 and multiplying by
1, 2, 3, 4, and 5, giving the pandigital, 918273645, which is
the concatenated product of 9 and (1,2,3,4,5).
What is the largest 1 to 9 pandigital 9-digit number that can
be formed as the concatenated product of an integer with
(1,2, ... , n) where n > 1? =#
results = []
pandigital = join(['1', '2', '3', '4', '5', '6', '7', '8', '9'])
# Number must 4 digits (exactly) to be pandigital
# if n > 1
for i in 1:10_000
integer = 1
number = ""
while length(number) < 9
number *= string(integer * i)
if join(sort(collect(number))) == pandigital
push!(results, number)
end
integer += 1
end
end
return maximum(results)
end
println("Time to evaluate Problem $(lpad(38, 3, "0")):")
@btime Problem38()
println("")
println("Result for Problem $(lpad(38, 3, "0")): ", Problem38())