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