Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import itertools
- import numpy as np
- def find_number_of_divisiors(n_vals):
- col = np.asmatrix(n_vals, dtype='int32').T
- row = np.arange(2, n_vals[-1]/2+1, dtype='int32')
- mods = col % row
- return 2 + np.sum(mods == 0, axis=1)
- def tri_nums():
- n = 1
- t = 1
- while 1:
- yield t
- n += 1
- t += n
- t = tri_nums()
- print 1, ' has ', 1, ' divisors.'
- m = 1
- next(t)
- chunksize = 500
- while True:
- nchunk = list(itertools.islice(t, chunksize))
- dchunk = find_number_of_divisiors(nchunk)
- for i, d in enumerate(dchunk):
- if m < d:
- print nchunk[i], ' has ', d, ' divisors.'
- m = d
- if m == 320:
- exit(0)
- chunksize = 10000000 // nchunk[-1] + 2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement