codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
def factors(n): fs = [] if (n > 1) else [1] while n % 2 == 0: n //= 2 fs.append(2) if n > 1: f = 3 while f * f <= n: if n % f == 0: fs.append(f) n //= f else: f += 2 fs.append(n) return fs def num_div(n): fs = factors(n) prev, fs, f, d = fs[0], fs[1:], 2, 1 while fs: if fs[0] == prev: f, fs = f + 1, fs[1:] else: prev, fs, f, d = fs[0], fs[1:], 2, d * f return d * f def euler_12(n): i = tri = 1 while n >= num_div(tri): i, tri = i + 1, tri + i + 1 return tri if __name__ == "__main__": from time import time start = time() e12 = euler_12(500) stop = time() print "The answer is %d." % e12 print "That answer took me %g seconds" % (stop - start)
Private
[
?
]
Run code
Submit