Solution to problem 38
This commit is contained in:
parent
b116ca9e18
commit
8e4be11651
56
src/Python/Problem038.py
Normal file
56
src/Python/Problem038.py
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""
|
||||||
|
Created on 03 Jun 2021
|
||||||
|
|
||||||
|
@author: David Doblas Jiménez
|
||||||
|
@email: daviddoji@pm.me
|
||||||
|
|
||||||
|
Solution for problem 38 of Project Euler
|
||||||
|
https://projecteuler.net/problem=38
|
||||||
|
"""
|
||||||
|
|
||||||
|
from utils import timeit
|
||||||
|
|
||||||
|
|
||||||
|
@timeit("Problem 38")
|
||||||
|
def compute():
|
||||||
|
"""
|
||||||
|
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 = []
|
||||||
|
# Number must 4 digits (exactly) to be pandigital
|
||||||
|
# if n > 1
|
||||||
|
for i in range(1, 10_000):
|
||||||
|
integer = 1
|
||||||
|
number = ""
|
||||||
|
while len(number) < 9:
|
||||||
|
number += str(integer * i)
|
||||||
|
if sorted(number) == list('123456789'):
|
||||||
|
results.append(number)
|
||||||
|
|
||||||
|
integer += 1
|
||||||
|
|
||||||
|
return max(results)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
|
||||||
|
print(f"Result for Problem 38: {compute()}")
|
Loading…
x
Reference in New Issue
Block a user