mirror of
https://github.com/lammertb/libhttp.git
synced 2025-08-13 12:42:25 +03:00
According to hint in https://github.com/svaarala/duktape/issues/392#issuecomment-145301651
37 lines
959 B
JavaScript
37 lines
959 B
JavaScript
// prime.js
|
|
|
|
// Pure Ecmascript version of low level helper
|
|
function primeCheckEcmascript(val, limit) {
|
|
for (var i = 2; i <= limit; i++) {
|
|
if ((val % i) == 0) { return false; }
|
|
}
|
|
return true;
|
|
}
|
|
|
|
// Select available helper at load time
|
|
var primeCheckHelper = (this.primeCheckNative || primeCheckEcmascript);
|
|
|
|
// Check 'val' for primality
|
|
function primeCheck(val) {
|
|
if (val == 1 || val == 2) { return true; }
|
|
var limit = Math.ceil(Math.sqrt(val));
|
|
while (limit * limit < val) { limit += 1; }
|
|
return primeCheckHelper(val, limit);
|
|
}
|
|
|
|
function primeTest() {
|
|
var res = [];
|
|
|
|
print('Have native helper: ' + (primeCheckHelper !== primeCheckEcmascript) + '\n');
|
|
for (var i = 2; i <= 1000; i++) {
|
|
if (primeCheck(i)) { res.push(i); }
|
|
}
|
|
print(res.join(' '));
|
|
}
|
|
|
|
print = this.send || conn.write
|
|
|
|
print('HTTP/1.0 200 OK\r\nContent-Type: text/plain\r\n\r\n');
|
|
|
|
primeTest();
|