project_euler.problem_047.sol1 ============================== .. py:module:: project_euler.problem_047.sol1 .. autoapi-nested-parse:: Combinatoric selections Problem 47 The first two consecutive numbers to have two distinct prime factors are: 14 = 2 x 7 15 = 3 x 5 The first three consecutive numbers to have three distinct prime factors are: 644 = 2² x 7 x 23 645 = 3 x 5 x 43 646 = 2 x 17 x 19. Find the first four consecutive integers to have four distinct prime factors each. What is the first of these numbers? Functions --------- .. autoapisummary:: project_euler.problem_047.sol1.equality project_euler.problem_047.sol1.run project_euler.problem_047.sol1.solution project_euler.problem_047.sol1.unique_prime_factors project_euler.problem_047.sol1.upf_len Module Contents --------------- .. py:function:: equality(iterable: list) -> bool Check the equality of ALL elements in an iterable >>> equality([1, 2, 3, 4]) False >>> equality([2, 2, 2, 2]) True >>> equality([1, 2, 3, 2, 1]) False .. py:function:: run(n: int) -> list[int] Runs core process to find problem solution. >>> run(3) [644, 645, 646] .. py:function:: solution(n: int = 4) -> int | None Return the first value of the first four consecutive integers to have four distinct prime factors each. >>> solution() 134043 .. py:function:: unique_prime_factors(n: int) -> set Find unique prime factors of an integer. Tests include sorting because only the set matters, not the order in which it is produced. >>> sorted(set(unique_prime_factors(14))) [2, 7] >>> sorted(set(unique_prime_factors(644))) [2, 7, 23] >>> sorted(set(unique_prime_factors(646))) [2, 17, 19] .. py:function:: upf_len(num: int) -> int Memoize upf() length results for a given value. >>> upf_len(14) 2