I am trying to loop between two numbers and to return all prime numbers between them. In the first function isNumberPrime, I check if the number is prime and return 0 if it is not and 1 if it is prime. In the second function I am trying to loop between two numbers and to check if the flag is = 1, I push the number in the array. But, I can not see where the problem is?
function isNumberPrime(flag) {
let number;
let divider;
if ((number != 2 || number%2 === 0) || number === 1){
flag = 0; //not prime number 0
}
else {
divider = 3;
while(divider <= number/2){
if (number%divider === 0){
falg = 0;
break;
}
divider = divider + 2;
}
if(divider > number/2){
flag = 1;
}
}
return flag;
}
function looping(lowerNumber, higherNumber) {
let allPrimes = [];
for (let i = lowerNumber; i <= higherNumber; i++) {
isNumberPrime(i);
if (isNumberPrime(i) == 1){
allPrimes.push[i];
}
}
return allPrimes;
}
function enterNumbers() {
let input1 = document.getElementById("firstNumber");
let lowerNumber = input1.value;
let input2 = document.getElementById("secondNumber");
let higherNumber = input2.value;
let output = document.getElementById("output");
output.innerText = 'All primes between ' + lowerNumber +' and ' + higherNumber + ' are: [' + looping(lowerNumber, higherNumber) + ']';
}
const button = document.querySelector('button');
button.addEventListener('click', enterNumbers)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>Prime numbers</h1>
<p>Type first number and second number:</p>
<div>
<input id="firstNumber" type="number" size="24" />
<input id="secondNumber" type="number" size="24" />
<button>Show primes</button> <br />
<span id="output"></span>
</div>
<script src="primeNumber.js"></script>
</body>
</html>