este es mi codigo:
var num = parseInt(105); // debugger if (num < 1) { console.log("=> 0 or minus value is not a prime number", num); } else if (num == 2) { console.log("=> 2 is a prime number", num); } else if (num > 2) { for (i = 2; i < num; i++) { if (num % i == 0) { console.log("this is a not prime number as it is devided by zero"); break } else { console.log("this is a prime number") } } }en este código, ¿por qué otra declaración muestra el resultado cuando pongo números impares donde ya escribí la declaración de interrupción para detener la interrupción del ciclo?
Si el número no es divisible por una i en particular, entonces se está ejecutando su condición else. Cambie num a 5 , verá que this is a prime number impreso varias veces.
Puede crear una función (como se muestra a continuación) donde primero verificamos todas las i y luego imprimimos this is a prime number .
function isPrime(num) { if (num < 1) { console.log("=> 0 or negative values are not prime numbers", num); } else if (num === 2) { console.log("=> 2 is a prime number", num); } else if (num > 2) { for (let i = 2; i < num; i++) { if (num % i === 0) { console.log(`this is a not prime number as it is divisible by ${i}`); return; } } } console.log("this is a prime number"); } isPrime(105); O puede almacenar el resultado en una variable, y al final del bucle imprimir this is a prime number si la variable no se configuró.
const num = 105; if (num < 1) { console.log("=> 0 or negative values are not prime numbers", num); } else if (num === 2) { console.log("=> 2 is a prime number", num); } else if (num > 2) { let isPrime; for (let i = 2; i < num; i++) { if (num % i === 0) { console.log(`this is a not prime number as it is divisible by ${i}`); isPrime = false; break; } } if (isPrime !== false) { console.log("this is a prime number"); } }