Solution to problem 62 in Python
This commit is contained in:
parent
ad0cd08228
commit
8ff023990b
39
src/Python/Problem062.py
Normal file
39
src/Python/Problem062.py
Normal file
@ -0,0 +1,39 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Created on 25 Jul 2022
|
||||
|
||||
@author: David Doblas Jiménez
|
||||
@email: daviddoji@pm.me
|
||||
|
||||
Solution for problem 62 of Project Euler
|
||||
https://projecteuler.net/problem=62
|
||||
"""
|
||||
|
||||
from collections import defaultdict
|
||||
|
||||
from utils import timeit
|
||||
|
||||
|
||||
@timeit("Problem 62")
|
||||
def compute():
|
||||
"""
|
||||
The cube, 41063625 (345^3), can be permuted to produce two other cubes:
|
||||
56623104 (384^3) and 66430125 (405^3). In fact, 41063625 is the smallest
|
||||
cube which has exactly three permutations of its digits which are also
|
||||
cube.
|
||||
|
||||
Find the smallest cube for which exactly five permutations of its digits
|
||||
are cube.
|
||||
"""
|
||||
|
||||
cubes = defaultdict(list)
|
||||
for number in range(345, 10_000):
|
||||
cube_str = "".join(sorted(list(str(number**3))))
|
||||
cubes[cube_str].append(number**3)
|
||||
if len(cubes[cube_str]) == 5:
|
||||
return min(cubes[cube_str])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
print(f"Result for Problem {int(62):003d}: {compute()}")
|
Loading…
x
Reference in New Issue
Block a user