Primo is a primality proving program based on the ECPP (Elliptic Curve Primality Proving) algorithm. Given positive odd integers, it tests whether these integers are prime, and if they are it produces primality certificates. With Primo, one can check crypto-primes and prove whether they are actually prime... or not.

Executable for Linux 64-bit (Ubuntu 14.04/x86-64 architecture)
Compiled with Free Pascal 2.6.4 and Lazarus 1.4.0
Primo for Linux screenshot

A short description of the ECPP algorithm can be found at Elliptic Curve Primality Proving by Eric Weisstein (from MathWorld — A Wolfram Web Resource).

  • What does "LX64" stand for?
    Linux 64-bit.
  • Does it exist a Primo version for an other operating system than Linux?
    No, there is not.
  • Is the LX64 version for multicore processors?
    Yes, it is. It can work with up to 48 processors.
  • Does the LX64 version run with Linux distributions other than Ubuntu 14.04?
    It should do (but I do not know).
  • Does it exist a command line version?
    No, not yet.

Some running times
The following certification running times were obtained with Primo using an Intel i7-2600 3.4GHz processor.

NSieve parametersTasksRunning time
10999 + 72000 dd23 bits857.9s
101999 + 73212000 dd23 bits811mn 24s
102999 + 18873000 dd24 bits81h 3mn
103999 + 47714000 dd25 bits8     3h 14mn [1]
104999 + 226695000 dd26 bits88h 52mn
105999 + 293796000 dd27 bits818h 50mn
106999 + 331877000 dd28 bits834h 24mn
107999 + 358878000 dd29 bits860h 57mn

[1] This number is the second ECPP record set with Primo. Its first certification (2001) took 2856h!

v4.2.0 (March 3, 2016)
    Since the certificate signature scheme was modified (the previous stuff was too old and not at all adapted to 64-bit processors), things that should have been changed since long were also modified.
  • Added a check box to the Verification page. Its associated option allows to update certificates from the old format 3 to the new format 4 (when signing or checking signatures).
    The produced certificates contain less tests (on average) and, consequently, their checking is slightly faster.
  • Added a "Setup..." item to the main menu.
  • Modified the "Elapsed time" chrono for certifications and verifications. It now indicates the whole certification/verification running time. Up to now, it was not the case when aborting/resuming.
  • Added new discriminants.
  • Added Girstmair polynomial factorization. It speeds a little up the factorization of polynomials having a small degree and a cyclic Galois group.
  • Almost all of the assembler code parts were rewritten.
  • Fixed a bug that could raise the internal error Thanks to Richard Dickerson who reported it.
 Previous changes


The software Primo may be used free of charge but it might be a good idea to read the End-User License Agreement before downloading and using it.

Due to the numerous changes, it is impossible to resume with this new version a certification started with a previous version.

  primo-420-lx64.7z    20 MB   Executables  (binary files)

Valid XHTML 1.0 Strict