Sé que hay varias preguntas sobre cómo determinar si un número es primo, pero ninguna de ellas me ayuda a entender esta aplicación concreta en Wikipedia, https://en.wikipedia.org/wiki/Primality_test Entiendo que los dos if
declaraciones, no el for
bucle. En concreto, ¿por qué incrementa i
por 6 y por qué comprueba si n % (i+2)
¿igual a cero? Aquí está la implementación de JavaScript. Explícamelo como si tuviera 5 años por favor. Gracias de antemano.
function isPrime(n) {
if (n <= 3) { return n > 1; }
if (n % 2 == 0 || n % 3 == 0) { return false; }
for (var i = 5; i * i <= n; i += 6) {
if (n % i == 0 || n % (i + 2) == 0) { return false; }
}
return true;
}