Imported Upstream version 1.0.0
[platform/upstream/js.git] / js / src / jit-test / tests / sunspider / check-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 var ret = 0;
31 function sieve() {
32     for (var i = 1; i <= 3; i++ ) {
33         var m = (1<<i)*10000;
34         var flags = Array(m+1);
35         ret += nsieve(m, flags);
36     }
37 }
38
39 sieve();
40 assertEq(ret, 14302)