En 1644 Mersenne conjeturó que los números de la forma 2n – 1 eran primos, donde n es un primo. W. W. R. Ball llamó a éstos Números de Mersenne y hasta la fecha los esfuerzos para demostrar esta conjetura han sido vanos De hecho, no se conoce cómo llegó Mersenne a este resultado, ni para cuáles condiciones se cumple Inclusive, hasta 1962 el primo más grande conocido era 244 – 1, el cual es, en sí, un número de Mersenne y consta de aproximadamente 3000 cifras.

Hay una larga historia de los primos de Mersenne, la cual comenzó en 1456 y que sigue hasta nuestros días. Se conocen 47 números primos de Mersenne (el último tiene como n = 43112609, y consta de 12,978,189 de cifras. Fue hallado en el 2008 gracias a los esfuerzos de Smith, Woltman y Kurowski usando GIMPS y PrimeNet, utilizando Prime95, una aplicación gratuita escrita por George Woltman, que es usada por GIMPS (Great Internet Mersenne Prime Search), como un proyecto distribuido dedicado exclusivamente a hallar nuevos primos de Mersenne. Prime95 se refiere al software de Windows y Mac OS X, pero hay una versión para Linux, MPrime, que funciona usando la consola, la línea de comandos. Es idéntica a Prime95, pero no tiene una interfaz gráfica como en sus contrapartes Mac y PC.

Los primeros números de Mersenne, de la forma 2n – 1 son 3, 7, 31, 127, y estos son fáciles de probar en su primalidad porque se pueden hacer las divisiones con los números anteriores al que estamos probando, pero para números muy grandes, el hacer este proceso podría llevar demasiado tiempo. Sin embargo, tenemos buenas noticias para los primos de Mersenne y es que hay una prueba rápida, llamada prueba de Lucas-Lehmer, con la que puede saberse si un número es primo o no.

El primo de Mersenne 48 fue hallado por Curtis Cooper, un matemático de la Universidad de Missouri Central. Aquí hablamos de 257,885,161 – 1 y es un número de Mersenne que tiene 17,425,170 de dígitos. El resultado se obtuvo usando los servidores distribuidos GIMPS. Este proyecto de cómputo distribuido se diseñó para “cazar” los primos de Mersenne y es responsable de descubrir los últimos 10 primos de Mersenne, habiéndose hallado en el 2008 el número 47. GIMPS corre en cerca de 1000 computadoras en diversas universidades y para hallar el primo 48 se necesitaron 39 días de cálculos. Se verificó el resultado usando un servidor de 32 núcleos en seis días.

El descubrimiento hace acreedor a Cooper a un premio de 3,000 dólares, dado por el propio proyecto GIMPS, pero no compite con el premio de la EFF (Electronic Frontier Foundation), que ofrece 150,000 dólares por el primer primo con al menos 100 millones de dígitos, y 250,000 dólares por descubrir el primer primo con al menos mil millones de dígitos.

Es interesante hacer notar que desde el punto de vista de la programación, los números de Mersenne son muy simples. Por ejemplo, ensu forma binaria, los tres primeros son 11, 111, 11111, etcétera. En general, 2n-1 es simplemente un número binario con n unos. El hecho es que tenemos primos de Mersenne para n=31, 61 y 127 y frecuentemente son muy útiles cuando se necesita un primo rápidamente.

Finalmente, ¿cuáles son todas las cifras del primo 48 de Mersenne? En erl sitio Programming Praxis se reta a los lectores (programadores) a que generen los 17 millones de dígitos. Un programa simple en C no puede hacer esto porque los tipos de los enteros tienen limitaciones evidentes. Pero tal vez usando una biblioteca de números muy grandes, como la Multiple Precision Library de GNU podría ser de gran ayuda.

Haciéndome eco a este concurso, a las tres primeras soluciones completas y verificables (incluyendo el código fuente), de los lectores de unocero, se hará acreedores a mi colección de libros de Sudoku (y uno de ajedrez). Cuatro libritos en total.

Referencias:

GIMPS
Programming Praxis