Is this a bad way to check prime number using Javascript

Viewed 49
const input = 3;
let isPrime = true;
 outer: for(let i = 2; i < input; i++){
        for(let j = 2; j < input; j++) {
         if((i * j) === input) {
                  isPrime = false;
                  console.log(`${input} is Not a prime number`);
                  break outer;
              }
      }
}
if(isPrime) {
    console.log(`${input} is a prime number`); }

Personally, I think this is not the right way, even though I could've done it in an easier way, I approached the problem like so. I needed some feedback from my seniors, can I get a code review?

1 Answers

Nested loops are mostly time consuming solutions. If you have an other option you need to probably do that. In this case you using nested for loops to determine prime number. But you can do it with only one for loop.

const number = 3
let isPrime = true;

// check if number is equal to 1
if (number === 1) {
    console.log("1 is neither prime nor composite number.");
}

// check if number is greater than 1
else if (number > 1) {

  
    for (let i = 2; i <= Math.sqrt(number); i++) {
        if (number % i == 0) {
            isPrime = false;
            break;
        }
    }

    if (isPrime) {
        console.log(`${number} is a prime number`);
    } else {
        console.log(`${number} is a not prime number`);
    }
}

For more information you can check these links: Why nested loops are bad practice Finding a prime number

Related