JSFiddle - React, Tailwind, and code Playground

by zakariamouhid

HTML

input:<br>
<textarea id="input">6
1 10
2 4
100 300
700 1200
50 51
99 999</textarea><br>
<button id="button">solve</button><br>
output:<br>
<textarea id="output"></textarea>

CSS

textarea {
  width: 300px;
  height: 200px;
}

JavaScript

function getPrimes(max) {
	var isNotPrime = [true, true], i, j;
  for (i = 2; i <= max; i += 1) {
  	if (!isNotPrime[i]) {
    	isNotPrime[i] = false;
    	for (j = 2 * i; j <= max; j += i) {
      	isNotPrime[j] = true;
      }
    } else {
    	isNotPrime[i] = true;
    }
  }
  return isNotPrime;
}
var isNotPrime = getPrimes(1000000);
function primesCount(n, m) {
	var i, count = 0;
	for (i = n; i <= m; i += 1) {
  	if (!isNotPrime[i]) {
    	count += 1;
    }
  }
  return count;
}
button.onclick = function () {
	var lines = input.value.split("\n");
  lines.shift();
  output.value = lines.map(function (line) {
    line = line.split(" ");
    return primesCount(+line[0], +line[1])
  }).join("\n");
};
button.click();