diff --git a/src/Python/Problem061.py b/src/Python/Problem061.py index da8e11a..4f6a68e 100644 --- a/src/Python/Problem061.py +++ b/src/Python/Problem061.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python3 +#!/usr/bin/env python """ Created on 16 Jul 2022 @@ -14,6 +14,21 @@ from itertools import permutations from utils import timeit +def get_numbers(order: int, number: int) -> int: + return (number * (number - 1) * (order - 2) // 2) + number + + +poligonals: dict[int, set[str]] = { + o: set(str(get_numbers(o, n)) for n in range(150)) for o in range(3, 9) +} + +four_digits_numbers: set[str] = {str(n) for n in range(10**3, 10**4)} + +eligibles: dict[int, list[str]] = { + k: list(v & four_digits_numbers) for k, v in poligonals.items() +} + + @timeit("Problem 61") def compute(): """ @@ -43,19 +58,6 @@ def compute(): heptagonal, and octagonal, is represented by a different number in the set. """ - def get_numbers(order: int, number: int) -> int: - return (number * (number - 1) * (order - 2) // 2) + number - - poligonals: dict[int, set[int]] = { - o: set(str(get_numbers(o, n)) for n in range(150)) for o in range(3, 9) - } - - four_digits_numbers: set[str] = {str(n) for n in range(10**3, 10**4)} - - eligibles: dict[int, list[str]] = { - k: list(v & four_digits_numbers) for k, v in poligonals.items() - } - perms = permutations(eligibles.keys(), 6) for perm in perms: for a in eligibles.get(perm[0]): @@ -74,9 +76,9 @@ def compute(): eligibles.get(perm[5]), ): ans.append([a, b, c, d, e, f]) + return sum(map(int, ans[0])) if __name__ == "__main__": - - print(f"Result for Problem 61: {compute()}") + print(f"Result for Problem 61 is {compute()}")