check-bitops-nsieve-bits.js (791B)
1 // The Great Computer Language Shootout 2 // http://shootout.alioth.debian.org 3 // 4 // Contributed by Ian Osgood 5 6 var result = []; 7 8 function pad(n,width) { 9 var s = n.toString(); 10 while (s.length < width) s = ' ' + s; 11 return s; 12 } 13 14 function primes(isPrime, n) { 15 var i, count = 0, m = 10000<<n, size = m+31>>5; 16 17 for (i=0; i<size; i++) isPrime[i] = 0xffffffff; 18 19 for (i=2; i<m; i++) 20 if (isPrime[i>>5] & 1<<(i&31)) { 21 for (var j=i+i; j<m; j+=i) 22 result.push(isPrime[j>>5] &= ~(1<<(j&31))); 23 count++; 24 } 25 } 26 27 function sieve() { 28 for (var i = 4; i <= 4; i++) { 29 var isPrime = new Array((10000<<i)+31>>5); 30 primes(isPrime, i); 31 } 32 } 33 34 sieve(); 35 36 var ret = 0; 37 for (var i = 0; i < result.length; ++i) 38 ret += result[i]; 39 40 assertEq(ret, -211235557404919)