Estoy tratando de escribir un programa que pueda decir si $n^2+1$ es primo donde n está en los números naturales (lo siento, no sé cómo escribir esto en notación matemática adecuada). Claro, puedo tomar un enfoque de fuerza bruta para comprobar si el número es primo, pero quiero comprobar millones de valores de n, así que como n se hace grande, $n^2$ se me va de las manos rápidamente y mi computación se ralentiza. ¿Hay algún método más eficiente para comprobar si es primo?
¿Qué confianza tiene esta prueba? Necesito un 100% de confianza porque si estoy probando 100 millones de números, una sola respuesta incorrecta arruinaría mis cálculos.
0 votos
¿Qué algoritmo utilizas para comprobar la primalidad?
0 votos
Se deduce del pequeño teorema de Fermat que si $n^2+1$ es primo, entonces $$2^{\frac{n^2}{2}}=\pm 1 \bmod \left(n^2 +1\right)$$
0 votos
Si $n$ es impar, entonces $n^2+1$ será par y claramente no primo. Si no, creo que tendrías que usar un algoritmo para comprobar la primalidad. ¿Estás preguntando por el mejor algoritmo?
0 votos
Si sólo quieres "predecir", entonces Rabin-Miller puede ser el camino a seguir. Cada ronda de pruebas que supera el candidato a primo aumenta bastante la confianza en que el número es primo (pero una sola prueba fallida demuestra de forma concluyente que el número es compuesto).
0 votos
Puedes probar las dos sugerencias que se encuentran en los comentarios. Para ampliar la solución de @CountIblis, podrías realizar la exponenciación modular de forma logarítmica y obtener una respuesta razonablemente rápida y segura a tu consulta.
0 votos
@Victor Tengo un tamiz de eratóstenes, entonces compruebo si n es divisible por cada valor del tamiz hasta $\sqrt{n}$
0 votos
Para la notación, puede utilizar $\mathbb{N}, \textbf{N}, \mathbb{Z}^+ \cup \{0\}$
\mathbb{N}, \textbf{N}, \mathbb{Z}^+ \cup \{0\}
etc.0 votos
Puedo "predecir" si $n^2+1$ es primo con un 50% de probabilidad.