Diferencia entre revisiones de «Test de primalidad de Fermat»

Contenido eliminado Contenido añadido
+referencia -plantilla
+ejemplo
Línea 22:
 
Utilizando algoritmos rápidos de [[exponenciación modular]], se puede comprobar que el [[complejidad computacional|tiempo de ejecución]] de este algoritmo es O(''k'' × log<sup>2</sup>''n'' × log log ''n'' × log log log ''n''), donde ''k'' representa el número de veces que se comprueba la [[congruencia]] para el número aleatorio ''a'' y ''n'' es el número a testear.
 
== Ejemplo ==
 
Supongamos que se quiere determinar si ''n''&nbsp;=&nbsp;221 es primo. Escogiendo aleatoriamente 1 < ''a'' < 221, digamos ''a''&nbsp;=&nbsp;38, se puede chequear la expresión para determinar si se cumple:
:<math>a^{n-1} = 38^{220} \equiv 1 \pmod{221}.</math>
luego 221 puede ser primo, o también puede que 38 sea un número que falsee el test, de manera que tomamos otro ''a'', esta vez 24:
:<math>a^{n-1} = 24^{220} \equiv 81 \not\equiv 1 \pmod{221}.</math>
Luego 221 es compuesto y 38 era en efecto un número que falsaba el test. Además, 24 es un testigo de Fermat de la no primalidad de 221.
 
== Usos ==