70fdf1aaf3cb0bf1e409191bee3634fbb1318d86
[WebKit-https.git] / SunSpider / tests / access-nsieve.js
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 function sieve() {
31     for (var i = 1; i <= 3; i++ ) {
32         var m = (1<<i)*10000;
33         var flags = Array(m+1);
34         nsieve(m, flags);
35     }
36 }
37
38 sieve();