From c96de2bc6b8784120af8ccaf08365c4df9da9c1e Mon Sep 17 00:00:00 2001 From: Linus Miller Date: Wed, 28 Mar 2018 20:48:35 +0200 Subject: [PATCH] Restructure 5 --- 0005.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/0005.py b/0005.py index 4bc0877..3e47a38 100644 --- a/0005.py +++ b/0005.py @@ -4,11 +4,14 @@ import util target = 232792560 -def divisible(rng): +def smallest_multiple(nbrs): factors = None - for num in rng: + # get the prime factors of all nbrs, and keep the highest occurence of each unique prime factor + # in each number + for num in nbrs: nums = util.find_prime_factors(num) + count = Counter(nums) if (factors == None): @@ -17,16 +20,14 @@ def divisible(rng): for key, value in count.items(): if (not factors[key] or value > factors[key]): factors[key] = value + result = 1 - return factors + for key, value in factors.items(): + result *= key ** value + return result -factors = divisible(range(1, 21)) - -result = 1 - -for key, value in factors.items(): - result *= key ** value +result = smallest_multiple(range(1, 21)) print(result) print(result == target)