Pequeño teorema de Fermat
2 elevado a 6 módulo 7 deja 1, como predice el pequeño teorema de Fermat. Indique una base a y un primo p y obtenga el residuo de a elevado a p menos 1 módulo p; un compuesto se rechaza, nunca pasa por primo. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Base
- 2
- Primo
- 7
- Base reducida
- 2
- Exponente
- 6
- Residuo
- 1
- Expresión
- 2^{6} ≡ 1 (mod 7)
El pequeño teorema de Fermat afirma que, si p es primo y a es un entero no divisible por p, entonces a elevado a p menos uno es congruente con uno módulo p. Esa identidad sostiene las pruebas de primalidad de Fermat, los inversos modulares en un cuerpo primo y los problemas de concurso que piden reducir una potencia enorme sin expandirla. Esta calculadora recibe una base a y un módulo primo p, comprueba que p sea de verdad primo y devuelve el residuo exacto de a elevado a p menos uno módulo p mediante exponenciación modular BigInt determinista. Cuando a y p son coprimos el residuo es uno, que es el teorema; cuando p divide a a el residuo es cero.
Qué afirma el pequeño teorema de Fermat y qué significa el residuo
El pequeño teorema de Fermat dice que si p es un número primo y a es un entero que no es múltiplo de p, entonces a elevado a p menos uno es congruente con uno módulo p. En símbolos, a a la p menos uno congruente con uno mod p. Una forma equivalente, que vale incluso cuando p divide a a, es a a la p congruente con a módulo p.
La primera forma es la que evalúa esta capacidad: calcula el residuo de a a la p menos uno módulo p y lo devuelve como resultado principal. Cuando a y p son coprimos el residuo es siempre uno, que es el teorema; esa es la comprobación que el alumnado escribe en los deberes y la identidad usada para invertir a módulo p elevando a a la p menos dos.
Cuando p divide a a la potencia se anula a cero módulo p porque toda potencia positiva de un múltiplo de p sigue siendo múltiplo de p, de modo que el residuo es cero y la marca coprime es falsa. Se aceptan bases negativas y se reducen al intervalo de cero a p menos uno antes de la potencia, lo que mantiene el resto no negativo y coincide con la convención habitual del aula en aritmética modular.
Contrato de entrada, algoritmo y comportamiento de error
Los valores absolutos están acotados por el límite de enteros seguros de JavaScript para que todo producto modular intermedio quede exacto bajo BigInt. Tras el análisis, el manejador comprueba que p es primo con división de prueba en valores modestos y un conjunto determinista de bases Miller–Rabin en enteros seguros mayores. Si p es compuesto, uno, cero o negativo, la solicitud falla con un mensaje que nombra prime y afirma que el valor no es primo; esos fallos no se facturan.
Ejemplo: base dos y primo siete produce residuo uno, porque dos a la sexta es sesenta y cuatro y sesenta y cuatro menos nueve veces siete es uno. Ejemplo: base diez y primo cinco produce residuo cero, porque cinco divide a diez. Combine la respuesta con sus propias notas si necesita una demostración escrita; este extremo devuelve el residuo y las marcas, no una derivación paso a paso en prosa.
Dónde resulta útil esta comprobación
Los cursos de teoría de números y las plataformas de concursos usan una calculadora del pequeño teorema de Fermat para que quien aprende confirme a a la p menos uno módulo p sin implementar a mano la exponenciación modular y sin confundir un compuesto mentiroso de Fermat con un primo.
Los cuadernos de investigación y los scripts recreativos llaman al mismo contrato cuando quieren un oráculo independiente para un ejemplo publicado: dos a la sexta módulo siete debe ser uno, tres a la cuarta módulo cinco debe ser uno, y un módulo compuesto como nueve debe rechazarse en lugar de reducirse.
Los talleres de criptografía que presentan las pruebas de primalidad de Fermat o los inversos en un cuerpo primo necesitan una herramienta que rechace un módulo compuesto, porque el punto pedagógico es la hipótesis del teorema, no una potencia modular silenciosa que parezca plausible. La validación fallida no consume saldo. Trate un error de no primo como resultado de primer orden en su batería: es el contrato que impide que un mentiroso de Fermat se califique como acierto.
Qué puede hacer con ella
Comprobaciones de aula y de deberes
Permita que el alumnado envíe una base y un primo declarado y verifique que a^(p−1) mod p es uno cuando el par es coprimo, o que un módulo compuesto se rechaza.
Laboratorios de cripto e inversos en cuerpo primo
Confirme a^(p−2) como inverso de a módulo el primo p comprobando antes que a^(p−1) ≡ 1 (mod p) en el mismo par, sin incrustar una rutina de potencia modular.
Preguntas frecuentes
¿Qué devuelve esta calculadora del pequeño teorema de Fermat?
Envíe los enteros base (a) y prime (p).
¿Qué ocurre si el módulo no es primo?
El pequeño teorema de Fermat exige un módulo primo; los valores compuestos no se reducen y no se facturan.
¿Cuándo el residuo es igual a uno?
Siempre que p sea primo y gcd(a, p) = 1. Ese es el enunciado clásico del pequeño teorema de Fermat. Si p divide a a, el residuo es cero.
¿Se aceptan bases negativas?
Sí. Una base negativa se reduce al intervalo 0 a p−1 antes de la exponenciación, de modo que el resto es el residuo no negativo habitual.
¿Qué ocurre si la base es múltiplo de p?
El residuo es 0, porque cualquier potencia positiva de un múltiplo de p sigue siendo múltiplo de p. Es el único caso en que no se cumple la condición del teorema, y el resultado indica que a y p no son coprimos.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/math/fermats-little-theorem \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"base":2,"prime":7}'const res = await fetch("https://api.kit.forhosting.com/math/fermats-little-theorem", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"base": 2,
"prime": 7
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/fermats-little-theorem",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"base": 2,
"prime": 7
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/fermats-little-theorem", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"base":2,"prime":7}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"base":2,"prime":7}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/fermats-little-theorem", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"base": 2,
"prime": 7
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.fermats_little_theorem",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_abs | 9007199254740991 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Los módulos compuestos se rechazan con invalid_input en lugar de un resto engañoso, de modo que los scripts de deberes no traten nunca un compuesto mentiroso de Fermat como un primo.
Qué afirma el pequeño teorema de Fermat y qué significa el residuo
La calculadora también devuelve el exponente p menos uno, un booleano que registra si a y p no comparten factor común, una marca congruent_to_one que es verdadera exactamente cuando el residuo es uno, y una cadena breve de congruencia que usted puede imprimir junto a la respuesta. Los módulos compuestos no se reducen: la tarea falla con invalid_input para que un mentiroso de Fermat como trescientos cuarenta y uno no se haga pasar por primo.
Contrato de entrada, algoritmo y comportamiento de error
Envíe por POST un cuerpo JSON con dos campos enteros obligatorios: base, el entero a de la potencia, y prime, el módulo p que debe ser un primo al menos dos. Se aceptan los alias a para base y p, modulus o mod para prime, de modo que los modelos de clase que ya etiquetan el par así no necesitan reescritura. Cada campo puede llegar como entero JSON o como cadena de dígitos; booleanos, cadenas vacías, fracciones y valores no finitos fallan con invalid_input nombrando el campo. En caso de éxito el cuerpo ecos base y prime, informa reduced_base igual a a módulo p entre cero y p menos uno, informa exponent igual a p menos uno, e informa residue igual a reduced_base elevado a ese exponente módulo p. Las marcas coprime y congruent_to_one permiten a un corrector afirmar el enunciado clásico sin volver a derivar la potencia.
Dónde una API de residuo de Fermat aporta valor
Como la implementación es parse pura de nivel A, cada llamada exitosa cuesta el precio base publicado $0.002 sin tokens de modelo y sin red de salida. Mantenga las solicitudes dentro de los límites enteros publicados, fije el residuo y la marca congruent_to_one en las pruebas, y obtendrá un residuo de Fermat reproducible para deberes, complementos LMS y workers perimetrales sin levantar un sistema de álgebra computacional propio.
Casos de integración
Corrección automática de exámenes y LMS
Califique ítems del pequeño teorema de Fermat con un oráculo determinista que falle los módulos compuestos como invalid_input en lugar de devolver un resto que un corrector defectuoso podría tratar como éxito.
Preguntas técnicas
¿Cuánto cuesta la calculadora del pequeño teorema de Fermat?
La herramienta del navegador es gratuita. Las peticiones API usan saldo KIT prepago a $0.002 por llamada exitosa; la entrada inválida no se factura.