¿Alguien podría explicarme la segunda y la tercera declaración en el bucle for?
Cual es la 1ra y 2da i en la parte media y la ultima (i = i + 6)
function prime(n) { if (n <= 1) return false; if (n <= 3) return true; if (n % 2 == 0 || n % 3 == 0) return false for (let i = 5; i * i <= n; i = i + 6) { if (n % i == 0 || n % (i + 2) == 0) return false; } return true } console.log(prime(11)) console.log(prime(25)) console.log(prime(29))Hay un par de trucos en esta función para determinar la primalidad de un número n .
n , podemos decir con seguridad que números como 9, 15, 21... no dividirán a n . El if dentro del ciclo verifica la divisibilidad de n por i o i + 2 . Como sabemos, 3 | i+4 (-- de 2 arriba), no verificamos la divisibilidad allí ya que no es obligatorio. Y dado que este bucle va desde i = 5 hasta i = sqrt(n) , si no encontramos factores, podemos salir del bucle y volver true para la primalidad del número (-- del 1 anterior)