Didáctica y Software
Recepción: 23 Octubre 2023
Aprobación: 05 Abril 2024
DOI: https://doi.org/10.18845/meij.v25i1.7234
Resumen: Los números primos de Mersenne crecen de manera vertiginosa y se vuelven intratables con las herramientas de cómputo actuales. En este trabajo se repasan brevemente las cadenas de Mersenne para mostrar cómo ese crecimiento exponencial impone un límite en su cálculo. Posteriormente, se propone el siguiente enfoque: “Dado un número primo q cualesquiera es posible encontrar su exponente de Mersenne asociado, siempre y cuando se cumpla que es exactamente entero, donde es el logaritmo base 2”. Además, se propone una forma de aligerar, hasta cierto punto, la carga computacional al calcular de cantidades gigantescas. Para ello se propone un escalamiento a q+1, ya que sin él la capacidad numérica de las máquinas de cómputo no pueden diferenciar un número de otro que tenga algún valor decimal extremadamente pequeño. Este sencillo enfoque, que podría sorprender por su simplicidad, representa una alternativa para verificar si un primo q es un primo de Mersenne.
Palabras clave: Números primos, primos de Mersenne, exponentes de Mersenne.
Abstract: Mersenne primes grow rapidly and become intractable with current computing tools. In this work, Mersenne chains are briefly reviewed to show how this exponential growth imposes a limit on its calculation. Subsequently, the following approach is proposed: “Given any prime number q it is possible find its associated Mersenne exponent, as long as it holds that is exactly an integer, where is the base 2 logarithm”. Furthermore, a way is proposed to lighten, to a certain extent, the computational load when calculating of gigantic quantities. For this, a scaling to q+1 is proposed, since without it the numerical capacity of computing machines cannot differentiate one number from another that has some extremely small decimal value. This simple approach, which might surprise in its simplicity, represents an alternative to verify whether a prime q is a Mersenne prime.
Keywords: Prime numbers, Mersenne primes, Mersenne exponents.
Introducción
Los números primos de Mersenne son aquellos que se obtienen a partir de otro número primo como:
donde y son primos. En adelante, nos referiremos a los primos de Mersenne por, dados en ([eq:Mn]), cuando convenga solo por brevedad.
Otros números primos que se obtienen a partir de un número primo son los números primos de Germain, es decir, aquellos en los que dado un primo se obtiene otro número primo al hacer . Anteriormente se mostró en [1] que hay muchos números primos que no generan un número primo de Germain. Por ejemplo, los números primos que terminan en 7 o aquellos que se puedan representar como, para ciertos valores enteros . Sin embargo, en el caso de los primos, resultan intervalos de números primos todavía más grandes en los cuales no aparece un primo de Mersenne.
El problema de trabajar con los primos de Mersenne es que su crecimiento exponencial los hace rápidamente intratables para las capacidades de cómputo actuales. Por ejemplo, a la fecha sólo se han encontrado 51 primos y el último contiene más de 24 millones de dígitos [2]. Para mostrar este problema se repasan brevemente las cadenas de Mersenne, que se basan en los números dobles de Mersenne, los cuales se definen en la siguiente sección.
El artículo está organizado de la siguiente manera. Siguiendo un enfoque paralelo a [1] y [3], en las siguientes secciones, se incluyen primero las cadenas de primos de Mersenne, donde se observa que, por su crecimiento exponencial, se vuelven inmanejables rápidamente. Posteriormente, como propuesta central de este trabajo, con carácter didáctico, se muestra que para los primeros números de Mersenne, se obtiene su exponente como entero, solo si y son primos. Es decir, ese sencillo cálculo entregará un exponente fraccionario siempre que el número que se pruebe no sea Mersenne. Después de presentar algunos resultados numéricos, se propone el empleo de un escalamiento para calcular con cifras relativamente más pequeñas. Eso tiene por objetivo ampliar el rango de valores que se puedan probar en plataformas de gama media o baja. Se finaliza con una sección de Conclusiones.
Justificación y objetivo
En la literatura, se pueden encontrar trabajos en los que se proponen técnicas para encontrar números primos de manera computacionalmente eficiente [4, 5, 6]. Si en un futuro aparece una forma capaz de generar números primos fácilmente y que no dependan de la forma , entonces se podría aplicar el enfoque presentado en este trabajo. Además, no puede desecharse la idea de que se hagan realidad computadoras cada vez más potentes, tanto en velocidad de cálculo como en capacidad de memoria [7].
La razón de esta propuesta sería descubrir si existe, aunque sea remotamente la posibilidad de que haya algún primo cualesquiera que tenga su exponente asociado. Por otro lado, y de ahí la opción de probar si tenemos un exponente de Mersenne, hay otros algoritmos, en Internet, que generan números primos. Tenemos algoritmos que generan de forma aleatoria un número primo [8] y [9], o los algoritmos empleados en criptografía, como el algoritmo RSA [10], el cual se basa en dos números primos suficientemente grandes. También se pueden mencionar los números primos encontrados en PrimeGrid’s Seventeen or Bust subproject en octubre 2016, con más de 9 millones de dígitos [11]. Además de otro número primo que no es un número de Mersenne y el único conocido, a esa fecha, de más de 4 millones de dígitos [12]. También se han encontrado números primos de varias formas, como en progresiones aritméticas [13]. Otras páginas interesantes son [14] y [15].
Por ejemplo, se revisó una lista de más de 100 millones de números primos para verificar cuáles de ellos son primos , es decir, cuáles de ellos se pueden expresar como y se encontró su exponente asociado en menos de un minuto. La ventaja es, como primera aproximación, que para un se evita la prueba de primalidad sobre un número gigantesco pues ya se encuentra en una lista de números primos.
Se aclara que no se revisa si habría alguna diferencia o ventaja de generar primero el primo p y después probar la primalidad de pero resultó interesante seguir el camino contrario. Lo que se observa, como se muestra más adelante, es que cuando es primo, al hacer debe obtenerse un número exactamente entero, que es además primo y exponente de Mersenne.
Notas preliminares
No hay, al parecer, una convención si se debe escribir o. En el segundo caso, corresponde al orden consecutivo en la lista de los números primos de Mersenne [2], mientras que en el primero se denota por el valor del exponente . En adelante se llamará “exponente de Mersenne” al número primo cuyo valor entrega el número primo. Debe notarse que no todo número primo exponente de 2 entrega un número primo . Es más, de la cantidad infinita de números primos, sólo algunos pueden ser exponentes de Mersenne. Por ejemplo, en los primeros 43390 exponentes primos, es decir, los primos que van del 2 al 524287, sólo 7 de ellos son un primo de Mersenne.
Por otro lado, entre los números primos de Mersenne, para, todos los terminan en 1 o en 7. Aunque parece que eso podría dar una idea de dónde buscarlo, no todo número primo que termine en 1 o 7 es primo de Mersenne. Viendo la Tabla 1, donde se muestran los diez primeros números de Mersenne, tenemos que mientras apenas da un pequeño paso (del 17 al 19), es decir, dos primos consecutivos, y gemelos en este caso, va de un valor 131071 a 524287. Entre estos dos números hay 31140 números primos y sólo dos de ellos, tienen su exponente de Mersenne asociado. Esos dos exponentes son y .
En este trabajo, para decidir si un número primo cualquiera tiene asociado un exponente primo, se observa que el resultado de calcular será siempre un número entero, además de ser primo. Cuando el número bajo prueba no tiene asociado un exponente de Mersenne se obtiene un número no entero y por lo tanto no primo.
Lista de los primeros diez primos de Mesenne
Elaboración propiaEn la búsqueda de , el camino más común es seleccionar y ver si el resultado de hacer es primo, ya que la cantidad de candidatos es menor que la cantidad de primos cualesquiera. Sin embargo, probar si es primo resulta una tarea cada vez más difícil, ya que se requiere de un gran número de cálculos dado su crecimiento exponencial. Cabe hacer notar que aquí no se propone alguna prueba de primalidad en un sentido amplio. Para ello se aplica la prueba de primalidad Lucas-Lehmer [16] y exite la plataforma GIMPS [2], la cual en todo caso se recomendaría.
Así como a los primos de Germain se les puede llamar primos casi dobles, a los primos de Mersenne se les puede llamar primos casi exponente de 2. Para observar la importancia que tiene el número en el estudio de los primos , se puede seguir el siguiente desarrollo. Partiendo de la serie geométrica, se muestra de forma completa que si es la suma de términos dada por
Multiplicando ambos lados por a
de modo que
es decir,. Para que sea primo se requiere, al menos, que sea igual a 1, es decir,. Así, con un valor adecuado de p y, se tiene que puede ser un número primo, el cual es llamado número primo de Mersenne.
Cadenas de primos de Mersenne
Recordando las cadenas de Cunningham, donde un primo de Germain 2p+1 genera otro número primo al repetir sucesivamente el cálculo de 2(2p+1)+1, se observa que también se puede encontrar otro primo de Mersenne al hacer, donde, es decir,. Al número primo se le conoce como primo doble de Mersenne, y se designa por o. Algunos primos dobles de Mersenne son,,, [17].
No deben confundirse estos primos dobles de Mersenne, con las cadenas de Mersenne, ya que siguen una secuencia diferente. En una cadena de Mersenne, se toma un primo doble de Mersenne para calcular sucesivamente el siguiente primo doble, hasta que ya no se obtenga un número primo.
Una primera cadena es la siguiente: Iniciando con p=2,
Comprobar si es primo está fuera de la capacidad de cálculo de los computadores actuales, ya que es demasiado grande para el uso de cualquier prueba de primalidad [18].
Si se comienza con , llegamos a la misma cadena anterior. Con el valor inicial , se tiene la siguiente cadena
En este caso se ha encontrado que, es decir,, no es primo [19], de modo que esta cadena termina en el primer intento, es decir, solo entrega un primo doble de Mersenne.
Si se continúa probando cuál es el siguiente exponente p que pueda iniciar una cadena de Mersenne, se ha encontrado que p = 13,17,19,31 no son útiles, ya que su número doble de Mersenne no es primo [18]. Para , es decir, nuevamente resulta demasiado grande para aplicarle la prueba de primalidad. Estas cadenas de Mersenne, rápidamente se vuelven inmanejables para las herramientas actuales. Podría hacerse la conjetura que, dada una p, como en el caso de p=2,3,7, que sí entregan un primo doble de Mersenne, su cadena no continúa de manera indefinida. De cualquier manera sería muy difícil que se demuestre lo contrario.
De un primo q a un exponente de Mersenne p
Sea q un número primo cualesquiera que posiblemente sea primo de Mersenne, . Se supondrá que tiene la forma. Partiendo de algún valor primo q, que no necesariamente se obtuvo de la (1), se puede calcular
donde p es el exponente primo de Mersenne.
Se puede establecer la siguiente proposición:
Proposición 1. Dado un número primo q, se cumple que entero, ssi q es primo de Mersenne y p es su exponente.
A continuación se muestran tres ejemplos:
Ejemplo 1 (Primo que no es Mersenne). Supongamos que es un número primo de Mersenne. Entonces pero no es entero, por lo tanto no se obtiene de , así que q, aunque es un número primo, no es un primo de Mersenne.
Ejemplo 2 (Primo que no es Mersenne). Sea , entonces Nuevamente no se obtiene un entero, por lo tanto , aunque sea primo, no es un primo de Mersenne y no tiene asociado un exponente primo p.
Ejemplo 3 (Primo que sí es Mersenne). Sea , entonces Se obtiene un entero, por lo tanto es un primo de Mersenne y tiene asociado un exponente primo .
Aunque lo común es seguir el camino contrario, es decir, se propone p y se prueba si el resultado de es primo, aquí se emplea la relación entre q y p para estos números primos. Para mostrar que la condición propuesta se cumple para los conocidos, aunque no para todos por limitaciones de cómputo, se aplicó la (4) a números primos consecutivos para diferentes intervalos de q.
Resultados numéricos
En el código 1, se muestra en la variable L cuántos números primos hay en un intervalo dado, después se calcula para cada uno de ellos si tienen un exponente de Mersenne. El código es bastante simple y funciona sin problema para los primeros números de Mersenne, dependiendo de la capacidad de la máquina. Utilizando la función primes() en GNU-Octave, se analizan todos los números primos hasta.
El resultado en la consola de GNU-Octave es:
Nótese que en solo 57.686 segundos se verificaron más de 105 millones de números primos, de los cuales resultaron los primeros 8 exponentes de Mersenne en una computadora de gama baja, es decir una Intel Celeron CPU N3050 a 1.6 GHz.
¿Puede encontrarse si un número q, muy cercano a un primo de Mersenne, no tiene un exponente entero? Como prueba preliminar, se tomó el número primo correspondiente a , pero se le agregó +1, sólo para verificar que se cumple la Proposición 1. El resultado fue, es decir, no es exponente de Mersenne.
El lector puede preguntarse si este cálculo puede entregar falsos positivos, es decir, que el número bajo prueba tenga un exponente entero p tal que se cumpla que . Es claro que si q no es primo, sí existen algunos exponentes p enteros. Por ejemplo, si, el cual no es primo, se tiene que. Aunque es entero y primo, q no es primo. Por lo tanto se refuerza la propuesta de que se debe partir de algún valor de q que sea primo y de ahí, si además es primo de Mersenne, se obtendrá el valor correcto de p.
Limitaciones de cómputo
La capacidad numérica de la herramienta de cómputo es una fuerte limitante en este ejercicio y en general para encontrar el siguiente . Por un lado siempre está en juego la velocidad de cálculo, pero por otro lado, al tratar de manejar números gigantescos, está el problema de la representación numérica. En GNU-Octave el valor más grande de números primos que se manejó fue , no por su magnitud sino porque la longitud del vector de números excedió su capacidad. Al ejecutar la función primes(2^61), la cual entregaría la lista de números primos hasta, apareció un error por exceso en el índice del arreglo. Más aún, si se emplea la función isprime() de GNU-Octave, la cual realiza la prueba de primalidad, devuelve falso para , a pesar de que sí es número primo. El problema es la reprentación ya que en algunos lenguajes de programación al declarar la variable int, es decir, variable entera, el número 2147483647 es el valor máximo positivo para un entero con signo de 32 bits.
En la siguiente sección se presenta una propuesta para ampliar el rango de valores que se puedan comprobar. Una opción es cambiar el lenguaje de programación, pero aún así se llega a un límite, el cual se pretende extender. En PARI/GP [20], sin modificar stack, con la misma función isprime(), se alcanza a probar la primalidad de sin problema.
Reducción de la carga computacional
En la sección anterior se mencionó que las limitaciones en cómputo impiden aplicar satisfactoriamente la operación cuando se manejan números cada vez más grandes. Cuando se agregó +1 al octavo se logró obtener el resultado correcto, es decir, a pesar de estar muy cerca del número primo, sí se logró distinguir un exponente no entero, lo que permitió concluir que ese valor de q no es un primo de Mersenne. Pero para , la diferencia entre el número primo y otro que no es, tiene que ser mayor para que el cálculo de p tenga una diferencia observable. Si hacemos , se requiere un valor al menos, para detectar que es no entero. La salida de GNU-Octave para este caso fue:
Para valores más pequeños de , la operación regresa 61.00000000000000 y probar si es fraccionario ya no funciona.
Cambio de escala en q
Se supone que no conocemos el valor de p y solo disponemos de q, un número que es, posiblemente, primo de Mersenne pero que no fue obtenido de . Ya se mostró que es entero y primo, si y solo si q es un primo de Mersenne. Pero si q es un número gigante, calcular podría dar un error en la aproximación si el valor resultante es casi entero, es decir, si sus cifras decimales están más allá de la resolución de la máquina. Aunque es poco probable que haya dos primos consecutivos muy cercanos, a menos que sean primos gemelos, podría darse el caso de estar cerca de un primo de Mersenne sin serlo. Por ejemplo, para el cual es el siguiente número primo después de , al calcular en Python, no se distingue el valor fraccionario de p para cada caso, indicando que q sería un primo de Mersenne con exponente entero . Este error aparece por limitaciones en la representación numérica de la máquina.
Para aligerar el cálculo de se propone hacer un escalamiento, como sigue: Se supone que q tiene la forma y se desea encontrar p. Entonces se puede escribir . Haciendo, tenemos que
Finalmente,
donde q es el número que se desea probar, N es un entero a ser seleccionado, tan grande como sea posible, y p es el exponente si q es un primo de Mersenne.
Para seleccionar el valor de N se propone un sencillo algoritmo. Como se encontró que un valor límite es , se hace un escalamiento de modo que el se calcule para valores menores a ese límite. La idea es reducir el valor del cálculo del logaritmo a un valor manejable. De hecho, en Python se puede verificar si entrega un número entero pero hasta cierto límite, dado que cuando el número es muy grande, las cifras decimales estarán más allá del límite de resolución de la máquina. Los resultados parecen prometedores ya que en una fracción de tiempo se pudo diferenciar si un valor de q es un primo de Mersenne aún cuando su diferencia sea pequeña.
La parte principal de algoritmo se muestra en el Código 2.
Para mayor seguridad se podría agregar una prueba de primalidad al exponente p resultante, mediante la función isprime, la cual regresa False o True. Recuerde que el valor de p es de un orden exponencial menor al valor de q, el cual se vuelve importante entre mayor sea uno y otro.
Resultados
Como prueba preliminar, después de los resultados mostrados hasta, se verificaron algunos números primos tomados de [8] y de [21].
Algunos valores primos fueron:
,
y el número
En los tres casos se obtuvo un exponente fraccionario.
El número resultó ser primo de Mersenne con exponente . Debe recordarse que sin aplicar el escalamiento propuesto en la ecuación (5), no se podían verificar exponentes fraccionarios para valores mayores a . Para verificar los siguientes números primos, se empleó la función nextprime de Python. Los resultados entregados en la consola de salida se muestran para cada caso.
En el primer ensayo tenemos el número primo consecutivo después de :
Note que la exponenciación en Python se denota por ** en lugar del símbolo usado en GNU-Octave.
Se continuó la prueba con valores aún mayores.
Para el número primo que sigue a y el que sigue a, ya no se muestran todos los dígitos de q por razones de espacio; cada número requiere más y más páginas.
Otro ejemplo es:
Se verificaron otros números primos, los cuales se puedan obtener de alguna plataforma en línea. Sin embargo, se considera que no es necesario mostrar cada uno de ellos, ya que se trata de números relativamente grandes. Para terminar con las pruebas, se tomaron algunos números primos de Mersenne conocidos y se les agregó +2, para que sigan siendo impares y sólo para hacerlos diferentes. Se comprobó que en todos esos casos se logró detectar un exponente no entero, indicando que el número bajo prueba no es un primo de Mersenne.
Acelerando el escalamiento
Cuando q es relativamente grande, es decir, mayor , iniciar la búsqueda de un valor adecuado de N para el escalamiento con N=1 requiere más tiempo. Lo recomendable es iniciar con un valor de N más adecuado.
Como se desea que
se puede estimar una valor inicial para N haciendo
donde indica redondeo descendente, ya que N debe ser entero.
Para comprobar si el escalamiento realmente hace alguna diferencia se hicieron algunas pruebas con los siguientes resultados. Cabe mencionar que se partió con fines de validación de exponentes de Mersenne conocidos los cuales fueron tomados de [22].
En los siguientes dos valores, sin usar escalamiento, erroneamente detecta un exponente entero:
Al aplicar el escalamiento se encuentra corretamente que esos valores de q ya no son primos de Mersenne:
Con el escalamiento, la operación del funciona para los siguientes exponentes de Mersenne y sí logra diferenciar que q+2 ya no es un primo de Mersenne. Para probarlo, a partir del número 38 al 51, y valiéndonos del conocimiento de p, se ajustó la N inicial, haciendo simplemente N=p-60, y después entrando al lazo while donde se incrementa N+1 hasta alcanzar la condición
Obteniendo así el resultado correcto, como se muestra en la tabla 2
Resultados para algunos conocidos
Elaboración propiaNote que el exponente es del orden de los millones. Esto permite verificar que se cumple la Proposición 1. El código Python se ejecutó en una máquina con procesador AMD Ryzen 5. El tiempo de cálculos fue de 3.25 minutos, para el número 38, a 453.57 minutos (7.55 horas) para el número 51, el cual contiene más de 24 millones de dígitos.
Otra información sobre el exponente p
Se puede aprovechar el valor de la parte fraccionaria F, y de ahí observar qué tan cerca está el número primo q de un número . Si la parte fraccionaria es cero, ya se definió que ese valor de p corresponde al exponente de Mersenne, pero en caso contrario, se podría tomar el valor de F alrededor de 0.5 como el valor de q más alejado de un dado. Quizá, a partir de la parte fraccionaria, se podría tener una pista para buscar un nuevo q que cumpla lo necesario para ser primo de Mersenne. En los resultados que se muestran en la Tabla 3, con una simple modificación al código, se incluye la parte fraccionaria de p. También se puede observar el penúltimo caso, donde y efectivamente la construcción de ese número primo no tiene la forma de . Por el contrario, el último caso, con , sí corresponde a un exponente de Mersenne.
Mostrando parte fraccionaria de p
Elaboración propiaEs evidente que no existen primos gemelos de Mersenne. Aunque algunos exponentes primos gemelos como (3,5), (5,7) y (17,19) generan primos de Mersenne, estos resultan de magnitudes muy diferentes.
Conclusiones
En este trabajo primero se hizo un breve repaso a las cadenas de Mersenne. El objetivo de ese repaso fue mostrar que, en general, los números de Mersenne, rápidamente se vuelven intratables con las herramientas de cómputo actuales.
Queda abierta la posibilidad que este cálculo simple pueda servir para acercarse desde otro enfoque a los números primos de Mersenne.
Contribución de las personas autoras: No aplica por ser único autor.
Accesibilidad de datos: No aplica.
[1] Miramontes de León, G. (2023). Sobre la infinitud de los primos extendidos de Germain: un nuevo enfoque: On the infinity of Germain’s extended prime numbers: a novel approach. Revista Digital: Matemática, Educación E Internet, 23(2). https://doi.org/10.18845/rdmei.v23i2.6347.
[2] Mersenne Research Prime Search. (2023). Great internet mersenne prime search. https://www.mersenne.org/legal/.
[3] Miramontes de León, G., & Miramontes de León, D. (2022). Números primos gemelos y primos gemelos de Germain: Germain’s Twin Prime and Twin Prime Numbers. Revista Digital: Matemática, Educación E Internet, 23(1). https://doi.org/10.18845/rdmei.v23i1.6177.
[4] Atkin, A. O. L., & Bernstein, D. J. (2003). Prime sieves using binary quadratic forms. Mathematics of Computation, 73(246). https://doi.org/1023–1031. doi:10.1090/s0025-5718-03-01501-1.
[5] Pritchard, P. (1994). Improved incremental prime number sieves. In: Adleman, L.M., Huang, MD. (eds) Algorithmic Number Theory. ANTS 1994. Lecture Notes in Computer Science, vol 877. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-58691-1_67.
[6] Sorenson, J.P. (1998). Trading time for space in prime number sieves. In: Buhler, J.P. (eds) Algorithmic Number Theory. ANTS 1998. Lecture Notes in Computer Science, vol 1423. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0054861.
[7] Choi, C.Q. (2022). The Beating Heart of the World’s First Exascale Supercomputer These chips power Frontier past 1,100,000,000,000,000,000 operations per second. IEEE Spectrum. https://spectrum.ieee.org/frontier-exascale-supercomputer.
[8] Bigprimes.org (s.f.). Big Prime Number Generator. https://bigprimes.org/.
[9] OnlineTools.com. (s.f.). Generate Random Prime Numbers. https://onlinetools.com/random/generate-random-primes.
[10] Rivest, R. L., Shamir, A., & Adleman, L. (1978). A method for obtaining digital signatures and public-key cryptosystems. Communications of the ACM, 21(2), 120–126. https://doi.org/10.1145/359340.359342.
[11] Slatkevičius, R., & PrimeGrid community. (2024) PrimeGrid. https://www.primegrid.com/.
[12] Primes. (2024) The Largest Known Primes. http://primes.utm.edu/primes.
[13] Primes. (2024) \(3428602715439\cdot 2^{35678}+13\). https://t5k.org/primes/page.php?id=130856.
[14] Lowery, P., & Lowery, J. (s.f.) Very Large Prime Number Generator. https://jprime.netlify.app/.
[15] Peterson, D. (2024) Free-Online-Calculator-Use. https://www.free-online-calculator-use.com/prime-number-generator.html
[16] Ribenboim, P. (2004). The Little Book of Bigger Primes (2nd ed.). Springer New York, NY. https://doi.org/10.1007/978-1-4757-4330-2.
[17] OEIS Foundation. (2024) The On-Line Encyclopedia of Integer Sequences. A077586. https://oeis.org/A077586.
[18] Wolfram Research, Inc. (2024) Double Mersenne Number. https://mathworld.wolfram.com/DoubleMersenneNumber.html.
[19] Morelli, L. (2012) Double Mersenne number. http://www.doublemersennes.org/index.php.
[20] PARI group.(2016) PARI/GP home. https://pari.math.u-bordeaux.fr/.
[21] Wikipedia contributors. (2024). Largest known prime number. https://en.wikipedia.org/wiki/Largest_known_prime_number.
[22] Mersenne Research Prime Search. (2023). Great internet mersenne prime search. List of Known Mersenne Prime Numbers. https://www.mersenne.org/primes/.
Acerca de algunos exponentes de Mersenne About some Mersenne exponents
[1] Miramontes de León, G. (2023). Sobre la infinitud de los primos extendidos de Germain: un nuevo enfoque: On the infinity of Germain’s extended prime numbers: a novel approach. Revista Digital: Matemática, Educación E Internet, 23(2). https://doi.org/10.18845/rdmei.v23i2.6347.
[2] Mersenne Research Prime Search. (2023). Great internet mersenne prime search. https://www.mersenne.org/legal/.
[3] Miramontes de León, G., & Miramontes de León, D. (2022). Números primos gemelos y primos gemelos de Germain: Germain’s Twin Prime and Twin Prime Numbers. Revista Digital: Matemática, Educación E Internet, 23(1). https://doi.org/10.18845/rdmei.v23i1.6177.
[4] Atkin, A. O. L., & Bernstein, D. J. (2003). Prime sieves using binary quadratic forms. Mathematics of Computation, 73(246). https://doi.org/1023–1031. doi:10.1090/s0025-5718-03-01501-1.
[5] Pritchard, P. (1994). Improved incremental prime number sieves. In: Adleman, L.M., Huang, MD. (eds) Algorithmic Number Theory. ANTS 1994. Lecture Notes in Computer Science, vol 877. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-58691-1_67.
[6] Sorenson, J.P. (1998). Trading time for space in prime number sieves. In: Buhler, J.P. (eds) Algorithmic Number Theory. ANTS 1998. Lecture Notes in Computer Science, vol 1423. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0054861.
[7] Choi, C.Q. (2022). The Beating Heart of the World’s First Exascale Supercomputer These chips power Frontier past 1,100,000,000,000,000,000 operations per second. IEEE Spectrum. https://spectrum.ieee.org/frontier-exascale-supercomputer.
[8] Bigprimes.org (s.f.). Big Prime Number Generator. https://bigprimes.org/.
[9] OnlineTools.com. (s.f.). Generate Random Prime Numbers. https://onlinetools.com/random/generate-random-primes.
[10] Rivest, R. L., Shamir, A., & Adleman, L. (1978). A method for obtaining digital signatures and public-key cryptosystems. Communications of the ACM, 21(2), 120–126. https://doi.org/10.1145/359340.359342.
[11] Slatkevičius, R., & PrimeGrid community. (2024) PrimeGrid. https://www.primegrid.com/.
[12] Primes. (2024) The Largest Known Primes. http://primes.utm.edu/primes
[13] Primes. (2024) \(3428602715439\cdot 2^{35678}+13\). https://t5k.org/primes/page.php?id=130856.
[14] Lowery, P., & Lowery, J. (s.f.) Very Large Prime Number Generator. https://jprime.netlify.app/.
[15] Peterson, D. (2024) Free-Online-Calculator-Use. https://www.free-online-calculator-use.com/prime-number-generator.html
[16] Ribenboim, P. (2004). The Little Book of Bigger Primes (2nd ed.). Springer New York, NY. https://doi.org/10.1007/978-1-4757-4330-2.
[17] OEIS Foundation. (2024) The On-Line Encyclopedia of Integer Sequences. A077586. https://oeis.org/A077586.
[18] Wolfram Research, Inc. (2024) Double Mersenne Number. https://mathworld.wolfram.com/DoubleMersenneNumber.html.
[19] Morelli, L. (2012) Double Mersenne number. http://www.doublemersennes.org/index.php.
[20] PARI group.(2016) PARI/GP home. https://pari.math.u-bordeaux.fr/.
[21] Wikipedia contributors. (2024). Largest known prime number. https://en.wikipedia.org/wiki/Largest_known_prime_number.
[22] Mersenne Research Prime Search. (2023). Great internet mersenne prime search. List of Known Mersenne Prime Numbers. https://www.mersenne.org/primes/.
Notas de autor