[JavaScript] Sieve of Eratosthenes


JavaScript implementation of Sieve of Eratosthenes. See from GeeksforGeeks [1]. The JavaScript code is ported from the C/C++ code of GeeksforGeeks.

Input Integer Greater Than 2:



Source Code (HTML):

Input Integer Greater Than 2: <input type="text" name="n"><br><br>
<button type="button" id="sieve">Run Sieve of Eratosthenes</button><br><br>
<textarea id="result" rows="20" cols="50"></textarea>

Source Code (JavaScript):

function SieveOfEratosthenes(n) {
      // Create a boolean array "prime[0..n]" and initialize
      // all entries it as true. A value in prime[i] will
      // finally be false if i is Not a prime, else true.
      var integers = [];
      for (var i = 2; i < n+1; i++) {
              integers[i] = true;
      }

      for (var p = 2; p*p <= n; p++) {
              // If integers[p] is not changed, then it is a prime
              if (integers[p] == true) {
                      // Update all multiples of p
                      for (var i = p * 2; i <= n; i += p) {
                              integers[i] = false;
                      }
              }
      }

      // return all prime numbers <= n
      var primes = [];
      for (var p = 2; p <= n; p++) {
              if (integers[p] == true) {
                      primes.push(p);
              }
      }

      return primes;
}

var elmn = document.querySelector("input[name='n']");
var btn = document.querySelector("#sieve");
var resultElm = document.querySelector("#result");
btn.addEventListener("click", function(e) {
  var n = parseInt(elmn.value);
  if (!Number.isInteger(n)) {
    resultElm.value = "input must be integer!";
    return;
  }
  if ( n<=2 ) {
    resultElm.value = "n must be greater than 2!";
    return;
  }
  result.value = SieveOfEratosthenes(n);
});

Tested on: Chromium 65.0.3325.181 on Ubuntu 17.10 (64-bit)


References:

[1]Sieve of Eratosthenes - GeeksforGeeks
[2][Golang] Sieve of Eratosthenes
[3]Online Lemoine’s Conjecture Demo