prime.js 911 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. var n = 1;
  2. var cur = 1;
  3. var timer = null;
  4. function search() {
  5. if (timer) clearTimeout(timer);
  6. var sqrtn = Math.sqrt(n);
  7. for (iters = 0; iters < 10000; iters += 1) {
  8. cur += 1;
  9. if ((cur <= sqrtn) && (n % cur != 0)) continue;
  10. if (cur > sqrtn) {
  11. postMessage("num:" + n);
  12. }
  13. n += 1;
  14. cur = 1;
  15. }
  16. timer = setTimeout(search, 10);
  17. }
  18. onmessage = function (e) {
  19. switch (e.data) {
  20. case 'start':
  21. postMessage("log:start");
  22. if (timer) clearTimeout(timer);
  23. timer = setTimeout(search, 100);
  24. break;
  25. case 'stop':
  26. postMessage("log:stop");
  27. if (timer) clearTimeout(timer);
  28. started = false;
  29. break;
  30. case 'reset':
  31. postMessage("log:reset");
  32. n = 1;
  33. postMessage('num:');
  34. break;
  35. }
  36. }