prime.ssjs 952 B

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