Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

149
Vistas
Comprobando si es un número primo con JS

Primero estoy tratando de empujar solo números primos (sin 2) a una matriz y luego sumarlos todos pero quedando indefinidos.

He estado trabajando en esto durante largos días, agradecería si alguien pudiera ayudarme.

 let letsCheck = () => { let ourList = [] let sum = 0 for(let i = 2; i <= 50; i++) { if(i % 2 !== Number.isInteger()) { ourList.push(Number(i)) } } for(let prime in ourList) { sum += ourList[prime] } }
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

En primer lugar, no está comprobando números primos sino números impares mediante el operador %.

En segundo lugar, está comprobando la función Number.isNumber que devolverá el valor booleano, por lo que la comparación tiene algunos problemas.

Aquí hay una solución que puede ayudar.

 let letsCheck = () => { let ourList = [] let sum = 0 for(let i = 3; i <= 50; i++) { if(isPrimeNumber(i)) { ourList.push(Number(i)) } } for(let prime in ourList) { sum += ourList[prime] } } const isPrimeNumber = number => { for(let i = 2; i <= Math.ceil(number/2); i++) { if(number % 2 === 0) { return false; } } return true; }
about 4 years ago · Juan Pablo Isaza Denunciar

0

A partir de su código, era más probable obtener números pares/impares en lugar de números primos.

Los números primos son números enteros mayores que 1, que tienen solo dos factores: 1 y el número en sí .

Los números impares son los números que no tienen 2 como su factor, y tendrán resto = 1 si se divide por 2.

Entonces, como la programación matemática básica, el mod funciona como multiplicación/suma/resta que si ambos operadores/números son Integer , el resultado sería Integer . La operación mod es básicamente para obtener los restos de la división, es decir, 5/2 5 / 2 = 2, with remainders = 1 , por lo tanto, 5 % 2 = 1 .

Y, en el bucle, la i ya es un número, por lo que presionar Number(i) es equivalente a presionar i solo. Si solo desea obtener la suma, la matriz no es necesaria allí y debe eliminarse. Puede obtener la suma acumulándola en la variable de sum .

Por lo tanto, si desea obtener la suma de números impares en el rango [2,50] , debería ser:

 let letsCheck = () => { let sum = 0 for(let i = 2; i <= 50; i++) { if(i % 2 !== 0) { sum += i; } } console.log(sum); } letsCheck();

Y si desea obtener los números primos del 0 al 50 excepto el 2, debe ser:

 function isPrimeExclude2(num) { if(num <= 2) return false; for(let i=2; i*i <= num; i++){ if (num % i == 0) return false; } return true; } let letsCheck = () => { let sum = 0 for(let i = 2; i <= 50; i++) { if(isPrimeExclude2(i)) { sum = sum + i; } } console.log(sum); } letsCheck();

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda