La función isPrime() devuelve verdadero si un número es un número primo y devuelve falso si no lo es. El ciclo debe pasar de 2 a 500 hacia atrás y ejecutarlo en la función isPrime() . Si el número no es un número primo, el ciclo debe continuar con la siguiente iteración del ciclo. Y también, para el número que es un número primo, debería aparecer en el textContent del párrafo, pero continuar no funciona.
Aquí está el código:
let i = 500; const para = document.createElement('p'); function isPrime(num) { for(let i = 2; i < num; i++) { if(num % i === 0) { return false; } } return true; } // Add your code here while( i >= 2 ){ if( isPrime(i) === false){ continue; } else{ para.textContent = `${i}` + "</br>"; } i--; }Y aquí está el violín: https://jsfiddle.net/au9o2ftn/1/
Simplemente puede hacer esto:
let i = 500; function isPrime(num) { for (let i = 2; i < num; i++) { if (num % i === 0) { return false; } } return true; } while (i >= 2) { if (isPrime(i)) { console.log(i + " is prime!"); } i--; } sin continue ...
El problema es que cuando isPrime(i) en su código original devuelve verdadero, continue directamente y no finaliza i-- . Como resultado, se convierte en un ciclo muerto con una comprobación infinita de isPrime(500) .
O, si desea mantener continue , coloque i-- antes de continue .