¿Qué es el pequeño teorema de Fermat?
El pequeño teorema de Fermat es uno de los pilares de la teoría de números. Afirma que si p es un número primo y a es un entero no divisible por p (es decir, mcd(a, p) = 1), entonces a elevado a (p − 1) deja resto 1 al dividirlo entre p. En notación matemática: \(a^{p-1} \equiv 1 \pmod{p}\). Existe además una versión más general que se cumple para cualquier entero a: \(a^{p} \equiv a \pmod{p}\).
Cómo usar esta calculadora
Introduce un valor para la base a y otro para p. La calculadora comprueba si p es primo, calcula mcd(a, p) y evalúa tanto \(a^{p-1} \bmod p\) como \(a^{p} \bmod p\) mediante exponenciación modular rápida. Cuando p es primo y mcd(a, p) = 1, el primer resultado siempre será 1, lo que confirma el teorema. Si no se cumplen esas condiciones, el resultado de \(a^{p-1}\) se muestra como n/d, ya que el teorema no garantiza que el valor sea 1.
La fórmula explicada
La exponenciación modular eleva al cuadrado la base de forma repetida mientras reduce módulo p, de modo que incluso los exponentes grandes se mantienen manejables. El teorema es la base de los tests de primalidad (el test de Fermat), de las operaciones con claves del cifrado RSA y del cálculo de inversos modulares, ya que \(a^{p-2} \bmod p\) proporciona el inverso de a módulo un primo p.
Ejemplo resuelto
Tomemos a = 2 y p = 7. Como 7 es primo y mcd(2, 7) = 1, esperamos que $$2^{6} \bmod 7 = 64 \bmod 7 = 1.$$ ✔ La forma general da $$2^{7} \bmod 7 = 128 \bmod 7 = 2,$$ que coincide con \(a \bmod 7 = 2\). ✔
Preguntas frecuentes
¿Qué pasa si p no es primo? El teorema puede fallar. La calculadora avisa de que p no es primo y, en ese caso, solo tiene sentido el valor general \(a^{p} \bmod p\), que no necesariamente es igual a a.
¿Qué ocurre si a es múltiplo de p? Entonces mcd(a, p) ≠ 1, por lo que \(a^{p-1} \bmod p\) no será 1 (será 0). La forma general \(a^{p} \equiv a\) sigue cumpliéndose.
¿Puedo usarla para hallar inversos modulares? Sí: para un primo p, \(a^{p-2} \bmod p\) es el inverso multiplicativo de a módulo p.