Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

109
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!