From dd89390a041ac207d8ce8e8dd64cc4228671cdd8 Mon Sep 17 00:00:00 2001 From: felixm Date: Sat, 16 Mar 2024 15:38:43 -0400 Subject: [PATCH] Solve problem 122. --- python/e122.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 python/e122.py diff --git a/python/e122.py b/python/e122.py new file mode 100644 index 0000000..9441918 --- /dev/null +++ b/python/e122.py @@ -0,0 +1,27 @@ +def euler_122(): + upper = 201 + m_k = {k: 0 for k in range(2, upper)} + sets = [[1]] + for _ in range(11): + new_sets = [] + for s in sets: + for i in range(len(s)): + new_elem = s[i] + s[-1] + if new_elem in m_k and m_k[new_elem] == 0: + m_k[new_elem] = len(s) + new_sets.append(s + [new_elem]) + + # For better performance, we would have to prune here. + sets = new_sets + + r = 0 + for k in range(2, upper): + assert m_k[k] != 0 + r += m_k[k] + return r + + +if __name__ == "__main__": + solution = euler_122() + print("e122.py: " + str(solution)) + assert solution == 1582