Readability counts. Here is my attempt. def memoize(f): cache = {} def g(a): if a not in cache: cache[a] = f(a) return cache[a] return g
@memoize def solve(n): if n == 1: return 1 elif n%2 == 0: return 1 + solve(n/2) else: return 1 + solve(3*n+1) print max((solve(i), i) for i in range(1, 1+1000000)) $ time python p14.py (525, 837799) real 0m3.981s user 0m3.728s sys 0m0.242s Anand _______________________________________________ BangPypers mailing list BangPypers@python.org http://mail.python.org/mailman/listinfo/bangpypers