fun sieve(n) { var nPrimes= 0; var isPrime= {}; var i= 0; while (i < n) { isPrime[i]= 1; i= i+1; } i= 2; while (i < n) { if (isPrime[i]) { nPrimes = nPrimes + 1; var j= i+i; while (j < n) { isPrime[j]= 0; j= j + i; } } i = i + 1; } return nPrimes; } start = microseconds(); for (var i= 0; i < 20; i = i + 1) { print(sieve(8192), "\n"); } time = microseconds() - start; secs = time / 1000000; usec = String(time % 1000000); while (length(usec) < 6) usec = "0"+usec; print(secs, ".", usec, " seconds\n");