| 12345678910111213141516171819202122 |
- #!/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)
- init = 20
- n = [init] * len(funcs)
- vals = [f(init) 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]
|