Soy nuevo en JS. Estoy tratando de escribir un programa en el que necesito encontrar los números primos entre un conjunto de 2 números. Cuando ejecuto esto en mi IDE, aparece "Error de tiempo de ejecución - Otro". No presione la depuración en el IDE. Obtengo "Usar la recursividad larga está tomando mucho tiempo".
Aquí está el programa
var num1 = 2; var num2 = 10; var primeArray = []; for(i=num1; i<=num2; i++){ if(checkPrime(i)){ primeArray.push(i) } } console.log(primeArray.join(" ")) // console.log(checkPrime(10)); function checkPrime (num){ //convert number to string and get each digit in string form var numString = num.toString().split(""); //parse each string element to convert to number var numArray = numString.map(function(i){ return parseFloat(i) }); //sum all digits var sum = 0; for(i=0; i<numArray.length; i++){ sum= sum+ numArray[i]; } //2 is prime if(num == 2){ return true; } else if(num%2 === 0){ //if even then not prime return false; } else if(sum == 3){ // 3 is prime return true; } else if(sum%3 === 0){ // if sum of all digits is divisible by 3 then not prime return false; } else{ return true; } }No soy capaz de averiguar dónde me estoy equivocando.
var num1 = 2; var num2 = 10; var primeArray = []; for(i=num1; i<=num2; i++){ if(checkPrime(i)){ primeArray.push(i) } } console.log(primeArray.join(" ")) // console.log(checkPrime(10)); function checkPrime (num){ //convert number to string and get each digit in string form var numString = num.toString().split(""); //parse each string element to convert to number var numArray = numString.map(function(i){ return parseFloat(i) }); //sum all digits var sum = 0; for(i=0; i<numArray.length; i++){ sum= sum+ numArray[i]; } //2 is prime if(num == 2){ return true; } else if(num%2 === 0){ //if even then not prime return false; } else if(sum == 3){ // 3 is prime return true; } else if(sum%3 === 0){ // if sum of all digits is divisible by 3 then not prime return false; } else{ return true; } }