<html>
<head>
<script src="../htmlrunner.js"></script>
<script>
// The Great Computer Language Shootout
//  http://shootout.alioth.debian.org
//
//  Contributed by Ian Osgood

function pad(n,width) {
  var s = n.toString();
  while (s.length < width) s = ' ' + s;
  return s;
}

function primes(isPrime, n) {
  var i, count = 0, m = 10000<<n, size = m+31>>5;

  for (i=0; i<size; i++) isPrime[i] = 0xffffffff;

  for (i=2; i<m; i++)
    if (isPrime[i>>5] & 1<<(i&31)) {
      for (var j=i+i; j<m; j+=i)
        isPrime[j>>5] &= ~(1<<(j&31));
      count++;
    }
}

window.onload = function(){ startTest("sunspider-bitops-nsieve-bits", '35973a6b');

var i = 2;

test( "N-Sieve Bits", function(){
	var isPrime = new Array((10000<<i)+31>>5);
	primes(isPrime, i);
});

endTest(); };
</script>
</head>
<body></body>
</html>
