/js/src/metrics/jint/sunspider/access-nsieve.js

http://github.com/zpao/v8monkey · JavaScript · 48 lines · 28 code · 6 blank · 14 comment · 7 complexity · d1dd881cca45b7361f026f1482cc5cdf MD5 · raw file

  1. // The Great Computer Language Shootout
  2. // http://shootout.alioth.debian.org/
  3. //
  4. // modified by Isaac Gouy
  5. function pad(number,width){
  6. var s = number.toString();
  7. var prefixWidth = width - s.length;
  8. if (prefixWidth>0){
  9. /* BEGIN LOOP */
  10. for (var i=1; i<=prefixWidth; i++) s = " " + s;
  11. /* END LOOP */
  12. }
  13. return s;
  14. }
  15. function nsieve(m, isPrime){
  16. var i, k, count;
  17. /* BEGIN LOOP */
  18. for (i=2; i<=m; i++) { isPrime[i] = true; }
  19. /* END LOOP */
  20. count = 0;
  21. /* BEGIN LOOP */
  22. for (i=2; i<=m; i++){
  23. if (isPrime[i]) {
  24. /* BEGIN LOOP */
  25. for (k=i+i; k<=m; k+=i) isPrime[k] = false;
  26. /* END LOOP */
  27. count++;
  28. }
  29. }
  30. /* END LOOP */
  31. return count;
  32. }
  33. function sieve() {
  34. /* BEGIN LOOP */
  35. for (var i = 1; i <= 3; i++ ) {
  36. var m = (1<<i)*10000;
  37. var flags = Array(m+1);
  38. nsieve(m, flags);
  39. }
  40. /* END LOOP */
  41. }
  42. sieve();