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

101
Vistas
Comprobando el último dígito de un valor entero en JavaScript/p5

Así que estoy codificando algo en p5.js para verificar si un número es primo o no. Aquí está la función:

 function prime(n) { let P = true; for (let i = 2; i <= sqrt(n); i++) { if (n%i == 0) { P = false; break; } else { P = true; break; } } return P; }

Todo funciona bien, excepto los bits i <= sqrt(n) y if(n%i == 0) ...
El operador % te da el resto de a/b , pero cuando escribo:

primo ( entero que termina en 5 )

en la consola, devuelve true , cuando debería devolver false .
Entonces, quiero agregar una codición de que si el último dígito de n es 5, return false . ¿Cómo puedo hacer eso?

¡Gracias!

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Aquí está el código de trabajo para el número primo

 function prime(n) { var sqrtnum=Math.floor(Math.sqrt(n)); var prime = n != 1; for(var i=2; i<sqrtnum+1; i++) { // sqrtnum+1 if(n % i == 0) { prime = false; break; } } return prime; }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Simplemente elimine la palabra clave break en la otra parte de su código.

 function prime(n) { let P = true; for (let i = 2; i <= Math.sqrt(n); i++) { if (n%i == 0) { P = false; break; } else { P = true; } } return P; } console.log(prime(25)?"prime":"not prime")

about 4 years ago · Juan Pablo Isaza Denunciar

0

Hay muchas optimizaciones que podría implementar aquí. Por ejemplo, podría excluir todos los números pares de su ciclo de prueba. Esto es solo un comienzo. El tamiz de Erastóstenes proporciona orientación sobre futuras mejoras.

 function prime(n) { if (!n%2) return false; for (let i=3;i<=Math.sqrt(n); i+=2) if (n%i == 0) return false return true } [47,48,1005,234,239].forEach(n=> console.log(n,prime(n)))

En esta variación del guión, el número en realidad se descompone en sus divisores de números primos:

 function decomp(n) { const comp=[]; if (n%2==0) return [2,...decomp(n/2)]; for (let i=3;i<=Math.sqrt(n); i+=2) if (n%i==0) return [i,...decomp(n/i)]; return [n]; } function notPrime(n){ const comps=decomp(n); return comps.length>1?comps:false; } [47,48,1005,1001,234,239,4968417].forEach(n=> console.log(n,notPrime(n)))

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