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