// The Great Computer Language Shootout | |
// http://shootout.alioth.debian.org/ | |
// | |
// modified by Isaac Gouy | |
function pad(number,width){ | |
var s = number.toString(); | |
var prefixWidth = width - s.length; | |
if (prefixWidth>0){ | |
for (var i=1; i<=prefixWidth; i++) s = " " + s; | |
} | |
return s; | |
} | |
function nsieve(m, isPrime){ | |
var i, k, count; | |
for (i=2; i<=m; i++) { isPrime[i] = true; } | |
count = 0; | |
for (i=2; i<=m; i++){ | |
if (isPrime[i]) { | |
for (k=i+i; k<=m; k+=i) isPrime[k] = false; | |
count++; | |
} | |
} | |
return count; | |
} | |
function sieve() { | |
var sum = 0; | |
for (var i = 1; i <= 10; i++ ) { | |
var m = (1<<i)*10000; | |
var flags = Array(m+1); | |
sum += nsieve(m, flags); | |
} | |
return sum; | |
} | |
var result = sieve(); | |
var expected = 1430116; | |
if (result != expected) | |
throw "ERROR: bad result: expected " + expected + " but got " + result; | |