Solution to problem 38 in Julia

This commit is contained in:
David Doblas Jiménez 2021-09-08 21:00:32 +02:00
parent 8e4be11651
commit e7c2e60c25

56
src/Julia/Problem038.jl Normal file
View File

@ -0,0 +1,56 @@
#=
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 38:")
@btime Problem38()
println("")
println("Result for Problem 38: ", Problem38())