Solution to problem 38 in Julia
This commit is contained in:
parent
8e4be11651
commit
e7c2e60c25
56
src/Julia/Problem038.jl
Normal file
56
src/Julia/Problem038.jl
Normal 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())
|
Loading…
x
Reference in New Issue
Block a user