7 votos

Predecir si $n^2 + 1$ es primo

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?

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?

6voto

gsoundsgood Puntos 11

Un test de primalidad probabilístico muy rápido es el Prueba de Miller-Rabin .

Aquí hay una ejemplo de trabajo en línea de la prueba de Miller-Rabin que le ayudará a apreciar la velocidad de la prueba de primalidad utilizando este algoritmo.

También puedes instalar PARI/GP y ejecutar algo así:

for (n=1,1000000,if(isprime(n^2+1),print(n)))

Es increíblemente rápido; probando un millón de valores de $n$ tarda menos de un minuto. PARI/GP se basa (en parte) en la prueba de Miller-Rabin para comprobar la primalidad.

Nota: En algunas condiciones, la prueba de Miller-Rabin puede funcionar como determinista prueba de primalidad (es decir, le dará una respuesta garantizada si el número de entrada es primo o compuesto). Véase, por ejemplo Secuencia OEIS A014233 : números Impares más pequeños para los que la prueba de Miller-Rabin en las bases $\le n$ -el quinto primo no revela la composición . Esencialmente, la OEIS A014233 le da un límite por debajo del cual puede utilizar la prueba de Miller-Rabin de forma determinista. Por ejemplo, si ejecuta la prueba para cada parámetro "base" primo hasta 41, entonces la prueba determinará correctamente la primalidad de cualquier número de entrada impar hasta 3317044064679887385961981.

0 votos

¿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

Si está probando números que tienen como máximo 24 dígitos decimales, entonces puede utilizar la prueba de Miller-Rabin de forma determinista, utilizando 13 rondas de la prueba con "bases" primos 2, 3, 5, 7, ..., 41. Si ninguna de las 13 llamadas revela la compositividad, entonces se garantiza que su entrada es prima; véase OEIS A014233.

0 votos

@Ryan Yo también soy usuario de PARI/GP, si tu número es pequeño, digamos, menos de $12$ dígitos, el comando "isprime(n,2)" siempre da un $100$ % de respuesta correcta y no es mucho más lento. Incluso para $100$ -números de un dígito se obtiene un $100$ % de resultado correcto en menos de un segundo. Por lo tanto, mi sugerencia es claramente utilizar esta rutina.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X