Taddeus Kroes 13 年 前
コミット
76268ce5b8
1 ファイル変更22 行追加0 行削除
  1. 22 0
      problem45.py

+ 22 - 0
problem45.py

@@ -0,0 +1,22 @@
+#!/usr/bin/env python
+def tri(n): return n * (n + 1) / 2
+def pent(n): return n * (3 * n - 1) / 2
+def hexa(n): return n * (2 * n - 1)
+funcs = (tri, pent, hexa)
+
+n = [20] * 3
+vals = [f(20) for f in funcs]
+
+while len(set(vals)) > 1 or vals[0] == 40755:
+    mini = 0
+    minv = None
+
+    for i, v in enumerate(vals):
+        if minv is None or v < minv:
+            mini = i
+            minv = v
+
+    n[mini] += 1
+    vals[mini] = funcs[mini](n[mini])
+
+print vals[0]