/12.lua

http://github.com/badgerman/euler · Lua · 43 lines · 34 code · 2 blank · 7 comment · 7 complexity · f1bed2b4ff61b5dfc303e6d055677731 MD5 · raw file

  1. -- result: 76576500
  2. -- time: 1.159s
  3. require "euler"
  4. local MAX = 10000
  5. primes, prime_table = sieve_primes(MAX)
  6. print("go!")
  7. local i = 3
  8. local add = 3
  9. local m = 0
  10. while i<MAX*MAX do
  11. -- local b = {}
  12. local bm = 1
  13. -- local bi = 0
  14. local pi = 1
  15. local r = i
  16. while r>1 do
  17. local p = primes[pi]
  18. if p*p>i then break end
  19. local m = 0
  20. while math.mod(r,p)==0 do
  21. r = r / p
  22. m = m + 1
  23. end
  24. if m>0 then
  25. -- bi = bi + 1
  26. -- b[bi] = m
  27. bm = bm * (m+1)
  28. end
  29. pi = pi + 1
  30. end
  31. if bm>m then
  32. m = bm
  33. -- print(i, bm)
  34. end
  35. if bm>500 then
  36. print(i, bm)
  37. break
  38. end
  39. i = i + add
  40. add = add + 1
  41. end