Topics Register • News • History • How to • Sequences statistics • Template prototypes

Operation Billion Digits

From Prime-Wiki
Jump to: navigation, search

Operation Billion Digits (OBD) is a whimsical distributed computing project that is searching for a "Billion Digit Mersenne prime".

There isn't hope of really finding such a prime with today's technology and algorithms. A Lucas-Lehmer test is estimated to require 852 years. Perhaps much longer because many won't use modern hardware on a whimsical project; p-1, p+1, and ECM tests are also unfeasible because they require operations modulo the billion digit number. The only part of this project that can be undertaken today is trial factoring, and even that cannot be done with the efficient Prime95 program. Luigi, aka "ET_" on the boards, has written a trial factoring program that can handle these numbers. It's a sub-project of Lone Mersenne Hunters.

How to participate

Download the software

Two different factoring programs can be used to participate: Factor5 (for use on CPU's) and Mfaktc/Mfakto (for use on GPU's).

"Factor5" was written by Luigi Morelli. Luigi and other volunteers have compiled a versions for SSE2, G5 64-bit and AMD64 machines under Windows, MAC OSX, Linux and BSD environments. If you're using Windows cygwin binaries, you'll probably get a message requesting for a DLL once you try to run the program for the first time. That means you need to get both cygwin1.dll and cyggmp-10.dll to make the program run.

Reserving an exponent

Then, after all is set, you can go to the reservation page and look for an exponent in the left column that is not marked as reserved and post a message in the OBD thread telling others that you reserved the exponent.

Working on the exponent

Run the client. It should prompt for your reserved exponent, the start bit and ending bit. The start bit is the one right after the exponent in the official site table, the ending bit is normally one number after the starting one. If you want to do a bigger range, just input a higher number here (be aware that adding a bit depth takes twice the time than the previous). It's recommended that you switch the priority in Task Manager (using Ctrl-Shift-Esc) from normal to low. The program will start to work and output its progress by k, d and bit depth. The k is, well, the k on 2kp+1, where p is the exponent you're searching. The d is the divisor tried and the bit depth is the percentage of the depth. If you need to turn your client off, next time start it on a command shell or by a .bat file and type factor5 -r. To make a bat file, simply create a notepad file and type shell commands. Those will be activated in relation of the folder you're in, so you can skip the path and digit "factor5 -r" without quotations in a txt file inside the client folder. After that, rename the file to a .bat extension and it should be interpreted as commands. If you are running mfaktc/mfakto, simply add the exponent and the starting and ending bit levels in worktodo.txt, and then execute the program (or if you want to automate the process of reserving and testing, modify the script given here to fetch the appropriate range of exponents and then run the script). If you need to stop the program, next time just run the script or program again: it will remember the last class completed.

Reporting results

After the client is finished with the range, look at the results.txt file. It should have outputs like:

  • M(exponent) has a factor: (factor)
Congratulations! You found a factor and now have to report it on the OBD reporting thread. You should be happy about it!
  • M(exponent) no factor from 2^(startdepth) to 2^(end depth).
Well, no luck this time, but you still have to report your results at the thread. To report results, it's better to copy the output in your results.txt exactly as it is.

Once you have reported your results to the thread, also make sure to submit the results.txt file to James Heinrich via the form on or an email so that the results can be integrated into his database.


OBD uses a level-based system. They're currently at Level 21.07 (around twenty one candidates to 2^87). Their greatest factor was found at bit depth 85 by Åke Tilander, a factor of M3321932491, 28126803354429776910329417.

Will Edgington maintains a list of all known Mersenne factors here; whenever OBD finds a new factor, a copy is sent to him.

See also

External links