Teorema de los números primos. Consideremos la función que a cada n le asocia el número de primos entre 2 y n inclusive:
Es decir, a la larga, el número de primos entre 2 y n es aproximadamente
.
De hecho, si pn es el n-ésimo primo, entonces para n>6:
.
Ahora bien, atendiendo al Teorema Pequeño de Fermat, dado n, se dice que es un testigo según Fermat de que n es compuesto si . n es seudoprimo según Fermat respecto a si .
Naturalmente, si p es primo entonces p es seudoprimo según Fermat respecto a cualquiera de los enteros que lo preceden.
Ejemplo. El número es seudoprimo según Fermat respecto a 100 enteros que lo preceden.
En efecto, la función
tiene como imagen al conjunto
.
De hecho, la imagen inversa de 1, llamémosla
c341-1 consta de los números enlistados en la tabla 4.1,
Si n es compuesto y no posee testigos de que sea compuesto, es decir, si
Hecho. n es de Carmichael si y sólo si se cumplen las siguientes dos condiciones siguientes:
Se tiene pues que un número de Carmichael supera la prueba de primacía de Fermat, mas no es primo.
Otra prueba de primacía, ésta más fuerte, se debe al siguiente
Hecho. Si n es un primo impar, escribamos n-1=2s r, donde r es impar. Entonces para todo a<n tal que
se tiene
Un número n se dice ser un seudoprimo fuerte si satisface la condición (4.2) para todo a<n tal que .
Más aún, para cada n, sea
Si y , se dice que a es un testigo de que n es compuesto, es decir, de que no es primo.
En tanto se prueben más a's y ninguno atestigüe que n es compuesto, mayor será la certeza de que n es primo. Este es el algoritmo de Miller-Rabin para revisar si acaso el número dado n es primo. Si t es el número de a's probadas, la probabilidad de que declare a un número n (fuerte seudo-)primo, siendo que n sea compuesto, es decir, la probabilidad de que el algoritmo se equivoque, al declarar a un número como primo, es menor que . Los parámetros de entrada del algoritmo de Miller-Rabin son n y t y da como respuesta una decisión de si acaso n es seudoprimo o no.
Un procedimiento de búsqueda aleatoria para generar primos grandes está dado por el algoritmo 4.4.