He encontrado una forma tan absurdamente fácil de encontrar el siguiente número primo que no me parece real.
Lo intente con los primeros 100 mil números y el modelo matemático no fallo ni una sola vez.
Este modelo es ideal para escalar en procesos paralelos en búsqueda de un nuevo número primo, con unir varias computadoras se podría predecir con facilidad el siguiente número primo y estoy hablando de número tan grandes que hoy día parecen inalcanzables de procesar.
Adjunto PDF explicado.
PDF integrado en el mensaje desde la administración.
0. Arrancamos con el número que queramos (llamémosle CONTADOR), pero tenemos que transformar todos los primos anteriores (incluir el contador si es un primo) a ese número elegido en polinomio en BASE a cada primo. Luego ir al PASO 2.
1. Crear un polinomio en base al número primo que se encontró. Luego ir al PASO 2.
2. Incrementar una unidad en todos los polinomios y el contador, y luego verificar que el exponente de menor valor no es cero en ninguno de los polinomios. Luego si encontramos un nuevo número primo ir al PASO 1, sino volver a iniciar el PASO 2.
(Se busca que ningún polinomio sea CERO en su menor valor representativo porque de esa forma nos aseguramos que ese número no es múltiplo del polinomio. Al final de la hoja hay una mejor explicación).
Si cumple esta regla, sabemos que estamos frente a un número primo nuevo.
Voy a plasmar un ejemplo para que se pueda apreciar mejor los puntos mencionados.
Ejemplo:
Arrancamos con lo siguiente (PASO 0):
i) Arrancaremos con el “contador” en 2 en BASE 10
ii) Polinomio en BASE 2
Entonces el número 2 en BASE 10 representado en BASE 2 quedaría:
\[
\text{Contador: } 2 \, (\text{BASE 10})
\]
\[
2^1 \quad 2^0 \quad \rightarrow \quad \text{Polinomio en BASE 2}
\]
\[
1 \quad 0
\]
Polinomio que tenemos (BASE 2).
(Como indica el PASO 0, luego ir al PASO 2).
Ahora lo que hay que hacer es sumar una unidad a todos los polinomios y al CONTADOR que tenemos, en nuestro caso por ahora solo tenemos el polinomio en BASE 2 y el CONTADOR en 2. Así que quedaría de la siguiente manera:
\[
\text{Contador: } 3 \, (\text{BASE 10})
\]
\[
2^1 \quad 2^0 \quad \rightarrow \quad \text{Polinomio en BASE 2}
\]
\[
1 \quad 1
\]
Ahora como dice el punto 2, verificaremos en todos los polinomios (En nuestro caso solo tenemos el polinomio en BASE 2) y cómo podemos ver \(2^0\) se encuentra en 1 que es distinto a 0. Como dice el punto 1, al encontrar un nuevo primo, hay que transformarlo en un polinomio en base al número primo encontrado.
Ahora tenemos Polinomio que tenemos (BASE 2, BASE 3).
Así que vamos al PASO 1 y agregamos un nuevo polinomio (En BASE 3), lo seteamos con el número primo que encontramos (El número 3).
Así que nos quedaría así:
\[
\text{Contador: } 3 \, (\text{BASE 10})
\]
\[
2^1 \quad 2^0 \quad \rightarrow \quad \text{Polinomio en BASE 2}
\]
\[
1 \quad 1
\]
\[
3^1 \quad 3^0 \quad \rightarrow \quad \text{Polinomio en BASE 3}
\]
\[
1 \quad 0
\]
Se vuelve a repetir el proceso de incrementar una unidad a todos los polinomios que tenemos y al CONTADOR.
Y nos queda de la siguiente manera:
\[
\text{Contador: } 4 \, (\text{BASE 10})
\]
\[
2^2 \quad 2^1 \quad 2^0 \quad \rightarrow \quad \text{Polinomio en BASE 2}
\]
\[
1 \quad 0 \quad 0
\]
\[
3^2 \quad 3^1 \quad 3^0 \quad \rightarrow \quad \text{Polinomio en BASE 3}
\]
\[
0 \quad 1 \quad 1
\]
Calculamos lo que nos indica el punto 2 y vemos que NO todos los polinomios son distintos de CERO en el término de menor denominación.
En este caso el polinomio en BASE 2 termina en CERO.
\[
2^2 \quad 2^1 \quad 2^0 \quad \rightarrow \quad \text{Polinomio en BASE 2}
\]
\[
1 \quad 0 \quad 0
\]
Por lo tanto, no estamos frente a un nuevo número primo, así que solo hay que iniciar nuevamente el PASO 2.
Se vuelve a repetir el proceso de incrementar una unidad a todos los polinomios que tenemos y al CONTADOR.
Y nos queda de la siguiente manera:
\[
\text{Contador: } 5 \, (\text{BASE 10})
\]
\[
2^2 \quad 2^1 \quad 2^0 \quad \rightarrow \quad \text{Polinomio en BASE 2}
\]
\[
1 \quad 0 \quad 1
\]
\[
3^2 \quad 3^1 \quad 3^0 \quad \rightarrow \quad \text{Polinomio en BASE 3}
\]
\[
0 \quad 1 \quad 2
\]
Ahora como dice el punto 2, verificaremos en todos los polinomios y como podemos observar todos los dígitos de menor peso son distintos a CERO.
\[
2^2 \quad 2^1 \quad 2^0 \quad \rightarrow \quad \text{Polinomio en BASE 2}
\]
\[
1 \quad 0 \quad 1
\]
\[
3^2 \quad 3^1 \quad 3^0 \quad \rightarrow \quad \text{Polinomio en BASE 3}
\]
\[
0 \quad 1 \quad 2
\]
Así que efectivamente estamos frente a un nuevo número primo (El número 5).
Así que vamos al PASO 1 y agregamos un nuevo polinomio (En BASE 5), lo seteamos con el número primo que encontramos (El 5).
\[
\text{Contador: } 5 \, (\text{BASE 10})
\]
\[
2^2 \quad 2^1 \quad 2^0 \quad \rightarrow \quad \text{Polinomio en BASE 2}
\]
\[
1 \quad 0 \quad 1
\]
\[
3^2 \quad 3^1 \quad 3^0 \quad \rightarrow \quad \text{Polinomio en BASE 3}
\]
\[
0 \quad 1 \quad 2
\]
\[
5^2 \quad 5^1 \quad 5^0 \quad \rightarrow \quad \text{Polinomio en BASE 5}
\]
\[
0 \quad 1 \quad 0
\]
Se vuelve a repetir el proceso de incrementar una unidad a todos los polinomios que tenemos.
Y nos queda de la siguiente manera:
\[
\text{Contador: } 6 \, (\text{BASE 10})
\]
\[
2^2 \quad 2^1 \quad 2^0 \quad \rightarrow \quad \text{Polinomio en BASE 2}
\]
\[
1 \quad 1 \quad 0
\]
\[
3^2 \quad 3^1 \quad 3^0 \quad \rightarrow \quad \text{Polinomio en BASE 3}
\]
\[
0 \quad 2 \quad 0
\]
\[
5^2 \quad 5^1 \quad 5^0 \quad \rightarrow \quad \text{Polinomio en BASE 5}
\]
\[
0 \quad 1 \quad 1
\]
Calculamos lo que nos indica el punto 2 y vemos que NO todos los polinomios son distintos de CERO en el término de menor denominación.
En este caso el polinomio en BASE 2 y BASE 3 termina en CERO.
\[
2^2 \quad 2^1 \quad 2^0 \quad \rightarrow \quad \text{Polinom
io en BASE 2}
\]
\[
1 \quad 1 \quad 0
\]
\[
3^2 \quad 3^1 \quad 3^0 \quad \rightarrow \quad \text{Polinomio en BASE 3}
\]
\[
0 \quad 2 \quad 0
\]
\[
5^2 \quad 5^1 \quad 5^0 \quad \rightarrow \quad \text{Polinomio en BASE 5}
\]
\[
0 \quad 1 \quad 1
\]
Este método se puede seguir indefinidamente e ir detectando los nuevos números primos.
La facilidad que tiene para integrarse a un script de la informática y buscar en paralelo números primos es brutal.
Porque no se tiene que ir dividiendo al nuevo número que se quiere corroborar con todos los demás para saber si es divisible, sino que se tiene que incrementar los polinomios que tenemos (en sí serían los números primos esos polinomios) y “ya está contemplado con el punto 2 si es divisible o no”.
Incluso si vemos bien ni siquiera tenemos que llevar por completo el contador de TODO el polinomio en cada BASE, solo nos interesa el de menor denominación.
Así también que se puede combinar con otras teorías para realizar menos cálculos para saber si es un número primo. Como por ejemplo si estamos analizando el CONTADOR 12, no deberíamos de analizar el polinomio 11 y 7 ya que son mayor a la raíz cuadrada de 12.
{bf Nota:}
¿A qué me refiero cuando digo que un número sea un múltiplo de un polinomio?
Me refiero a que ese número es divisible por su BASE si es CERO el menor peso del polinomio.
Ejemplo:
BASE 2:
\[
2^3 \quad 2^2 \quad 2^1 \quad 2^0
\]
Todo número que satisfaga el polinomio de BASE 2 y que termine en CERO su menor peso es un múltiplo de 2.
Como por ejemplo:
\[
2^3 \quad 2^2 \quad 2^1 \quad 2^0
\]
\[
0 \quad 1 \quad 0 \quad 0 \quad \rightarrow \quad 4 \quad \rightarrow \quad \text{Múltiplo de 2}
\]
\[
2^3 \quad 2^2 \quad 2^1 \quad 2^0
\]
\[
1 \quad 1 \quad 0 \quad 0 \quad \rightarrow \quad 12 \quad \rightarrow \quad \text{Múltiplo de 2}
\]
\[
2^3 \quad 2^2 \quad 2^1 \quad 2^0
\]
\[
1 \quad 0 \quad 0 \quad 0 \quad \rightarrow \quad 8 \quad \rightarrow \quad \text{Múltiplo de 2}
\]
O por ejemplo:
BASE 3:
\[
3^3 \quad 3^2 \quad 3^1 \quad 3^0
\]
\[
3^3 \quad 3^2 \quad 3^1 \quad 3^0
\]
\[
1 \quad 0 \quad 0 \quad 0 \quad \rightarrow \quad 27 \quad \rightarrow \quad \text{Múltiplo de 3}
\]
\[
3^3 \quad 3^2 \quad 3^1 \quad 3^0
\]
\[
0 \quad 0 \quad 2 \quad 0 \quad \rightarrow \quad 6 \quad \rightarrow \quad \text{Múltiplo de 3}
\]
\[
3^3 \quad 3^2 \quad 3^1 \quad 3^0
\]
\[
0 \quad 2 \quad 1 \quad 0 \quad \rightarrow \quad 21 \quad \rightarrow \quad \text{Múltiplo de 3}
\]