From a410add121240107440f2f15a0ada7b89c4bef92 Mon Sep 17 00:00:00 2001 From: felixm Date: Sat, 6 Apr 2024 07:51:34 -0400 Subject: [PATCH] Solve problem 179. --- python/e179.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 python/e179.py diff --git a/python/e179.py b/python/e179.py new file mode 100644 index 0000000..87ae81f --- /dev/null +++ b/python/e179.py @@ -0,0 +1,33 @@ +from lib_prime import get_divisors_count + + +def euler_179_orig(): + r = 0 + for n in range(2, 10**7): + if n % 10**5 == 0: + print(n) + if get_divisors_count(n) == get_divisors_count(n + 1): + r += 1 + return r + + +def euler_179(): + """ Much faster version. """ + upper = 10**7 + ndivs = [1 for _ in range(0, upper + 2)] + for d in range(2, upper // 2): + for i in range(d, upper + 2, d): + ndivs[i] += 1 + + r = 0 + for i in range(2, upper + 1): + if ndivs[i] == ndivs[i + 1]: + r += 1 + return r + + +if __name__ == "__main__": + solution = euler_179() + print("e179.py: " + str(solution)) + assert(solution == 986262) +