js/src/devtools/jint/sunspider/access-nsieve.js

branch
TOR_BUG_9701
changeset 9
a63d609f5ebe
equal deleted inserted replaced
-1:000000000000 0:66c43135f199
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 /* BEGIN LOOP */
11 for (var i=1; i<=prefixWidth; i++) s = " " + s;
12 /* END LOOP */
13 }
14 return s;
15 }
16
17 function nsieve(m, isPrime){
18 var i, k, count;
19
20 /* BEGIN LOOP */
21 for (i=2; i<=m; i++) { isPrime[i] = true; }
22 /* END LOOP */
23 count = 0;
24
25 /* BEGIN LOOP */
26 for (i=2; i<=m; i++){
27 if (isPrime[i]) {
28 /* BEGIN LOOP */
29 for (k=i+i; k<=m; k+=i) isPrime[k] = false;
30 /* END LOOP */
31 count++;
32 }
33 }
34 /* END LOOP */
35 return count;
36 }
37
38 function sieve() {
39 /* BEGIN LOOP */
40 for (var i = 1; i <= 3; i++ ) {
41 var m = (1<<i)*10000;
42 var flags = Array(m+1);
43 nsieve(m, flags);
44 }
45 /* END LOOP */
46 }
47
48 sieve();

mercurial