diff options
author | Jesse Luehrs <doy@tozt.net> | 2009-05-14 19:51:41 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2009-05-14 19:51:41 -0500 |
commit | c3ff98ee4aa79bcaa07c8a478e96539c2a512e73 (patch) | |
tree | 0b1a04ee7e5b05ec23dcfa274d4258f8acbcdf9d /012.lua | |
parent | 394121b98178246a0b1063e9104f8878cf2a17e5 (diff) | |
download | projecteuler-c3ff98ee4aa79bcaa07c8a478e96539c2a512e73.tar.gz projecteuler-c3ff98ee4aa79bcaa07c8a478e96539c2a512e73.zip |
rename files for better sorting
Diffstat (limited to '012.lua')
-rw-r--r-- | 012.lua | 31 |
1 files changed, 31 insertions, 0 deletions
@@ -0,0 +1,31 @@ +-- only valid when n > 1 +function num_factors(n) + local ret = 2 + local test = 2 + local limit = math.sqrt(n) + while test < limit do + if n % test == 0 then + ret = ret + 2 + end + test = test + 1 + end + if limit == math.floor(limit) then ret = ret + 1 end + return ret +end + +generate_triangle = coroutine.wrap(function() + local num = 0 + local add = 1 + while true do + num = num + add + add = add + 1 + coroutine.yield(num) + end +end) + +while true do + local n = generate_triangle() + local nn = num_factors(n) + print(n .. ": " .. nn) + if nn > 500 then break end +end |