]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | // prime.js\r |
2 | \r | |
3 | // Pure Ecmascript version of low level helper\r | |
4 | function primeCheckEcmascript(val, limit) {\r | |
5 | for (var i = 2; i <= limit; i++) {\r | |
6 | if ((val % i) == 0) { return false; }\r | |
7 | }\r | |
8 | return true;\r | |
9 | }\r | |
10 | \r | |
11 | // Select available helper at load time\r | |
12 | var primeCheckHelper = (this.primeCheckNative || primeCheckEcmascript);\r | |
13 | \r | |
14 | // Check 'val' for primality\r | |
15 | function primeCheck(val) {\r | |
16 | if (val == 1 || val == 2) { return true; }\r | |
17 | var limit = Math.ceil(Math.sqrt(val));\r | |
18 | while (limit * limit < val) { limit += 1; }\r | |
19 | return primeCheckHelper(val, limit);\r | |
20 | }\r | |
21 | \r | |
22 | function primeTest() {\r | |
23 | var res = [];\r | |
24 | \r | |
25 | print('Have native helper: ' + (primeCheckHelper !== primeCheckEcmascript) + '\n');\r | |
26 | for (var i = 2; i <= 1000; i++) {\r | |
27 | if (primeCheck(i)) { res.push(i); }\r | |
28 | } \r | |
29 | print(res.join(' '));\r | |
30 | }\r | |
31 | \r | |
32 | print = this.send || conn.write\r | |
33 | \r | |
34 | print('HTTP/1.0 200 OK\r\nContent-Type: text/plain\r\n\r\n');\r | |
35 | \r | |
36 | primeTest();\r |