Residuo potencia n-ésima
Le dice si un número es una potencia k-ésima módulo un primo: 2 es un cuadrado módulo 7, porque 2 elevado a 3 deja resto 1. Sirve para cuadrados, cubos y cualquier potencia mayor, siempre con números enteros exactos. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- A
- 2
- K
- 2
- Potencia (W)
- 7
- A módulo
- 2
- Gcd
- 2
- Orden del grupo
- 6
- Exponente del criterio
- 3
Un entero a es residuo de potencia k-ésima módulo un primo p cuando existe un entero x tal que x elevado a k es congruente con a módulo p. Esa pregunta generaliza la residualidad cuadrática (el caso k igual a dos) a cubos, potencias superiores y exponentes positivos arbitrarios usados en teoría de números de concursos y criptografía introductoria. Esta capacidad recibe un candidato a, un exponente positivo k y un módulo primo p, reduce a al rango de cero a p menos uno, verifica que p sea primo y aplica el criterio estándar del grupo cíclico sobre el grupo multiplicativo del cuerpo de p elementos. Cuando a es divisible por p la respuesta es siempre afirmativa para k al menos uno, porque cero a cualquier potencia positiva es cero.
Qué significa un residuo de potencia k-ésima módulo un primo
Fije un módulo primo p y un entero positivo k. Las clases de residuo módulo p forman un cuerpo, y sus elementos no nulos forman un grupo multiplicativo cíclico de orden p menos uno. Un entero a no divisible por p es residuo de potencia k-ésima módulo p precisamente cuando a pertenece a la imagen de la aplicación que envía cada clase no nula x a x elevado a k.
Como el grupo es cíclico, esa imagen es el único subgrupo de índice igual al máximo común divisor d de k y p menos uno, y a pertenece a ese subgrupo si y solo si a elevado a la potencia (p menos uno) dividida por d es congruente con uno módulo p. Esa única exponenciación modular es el procedimiento de decisión usado aquí.
Cuando a es divisible por p, la congruencia x a la k congruente con a tiene la solución trivial x congruente con cero para todo k al menos uno, de modo que cero siempre se trata como residuo de potencia k-ésima.
Los casos especiales recuperan herramientas conocidas: para k igual a dos y p primo impar el criterio es el de Euler para residualidad cuadrática, la misma información del símbolo de Legendre, mientras que para k igual a p menos uno todo a no nulo es residuo por el pequeño teorema de Fermat. El extremo no inventa raíces en coma flotante ni potencias aproximadas; solo usa aritmética modular entera exacta para que las respuestas de libro y las pruebas automatizadas coincidan bit a bit.
Contrato de entrada, comprobación de primalidad y campos de respuesta
Envíe los enteros a, k y p. El exponente k debe ser al menos uno y como máximo un billón (10^12). Los nombres de campos opcionales nunca se rellenan con null: el par de criterio simplemente se omite en el caso de residuo cero.
Comprobaciones clásicas que puede reproducir a mano: para a igual a dos, k igual a tres y p igual a siete, el gcd de tres y seis es tres, así que el exponente de criterio es dos y dos al cuadrado es cuatro módulo siete, no uno; por tanto dos no es residuo cúbico módulo siete; en cambio uno siempre es residuo de potencia k-ésima para todo primo porque uno a cualquier potencia es uno.
No enteros, campos obligatorios ausentes y exponentes menores que uno fallan la validación con un mensaje claro en inglés.
Dónde aparecen las comprobaciones de residuos de potencia superior
Los programadores de concursos necesitan un oráculo rápido antes de intentar extraer raíces cúbicas modulares o de orden superior: si el bit de residuo es falso no tiene sentido buscar x. Los estudiantes de criptografía verifican ejercicios sobre la imagen de la aplicación potencia en cuerpos finitos, ejemplos de cálculo de índices y construcciones de juguete que dependen de si una clase de mensaje es potencia k-ésima antes de aplicar un mapa.
Las tuberías de investigación y deberes que ya usan los símbolos de Legendre o Jacobi para cuadrados a menudo necesitan la misma respuesta sí o no para cubos y potencias superiores sin cambiar de biblioteca. Si solo necesita residualidad cuadrática, siguen disponibles las herramientas dedicadas de residuo cuadrático y símbolo de Legendre; esta página es la decisión general de potencia k-ésima para módulos primos.
Qué puede hacer con ella
Comprobaciones de deberes y concursos
Decida si a es potencia k-ésima módulo el primo p en ejercicios de teoría de números sin escribir su propia tubería de exponenciación modular y gcd.
Prefiltro antes de extraer raíces
Rechace no residuos al inicio de una tubería que de otro modo intentaría algoritmos de raíz cúbica o de orden superior sobre un cuerpo primo.
Enseñar el criterio del grupo cíclico
Muestre a los alumnos gcd(k, p−1), el exponente de criterio y la potencia modular que demuestra o refuta la residualidad en triples concretos.
Preguntas frecuentes
¿Qué es un residuo de potencia k-ésima módulo un primo p?
Un entero a es residuo de potencia k-ésima módulo el primo p si existe un entero x tal que x^k ≡ a (mod p). Esta herramienta informa ese hecho con el criterio del grupo cíclico en F_p*.
¿Por qué debe ser p primo?
El procedimiento de decisión se basa en que el grupo multiplicativo módulo p es cíclico de orden p−1, lo cual vale para módulos primos.
¿Cómo se calcula la respuesta sí o no?
Sea d = gcd(k, p−1). Si a no es divisible por p, a es residuo de potencia k-ésima si y solo si a^((p−1)/d) ≡ 1 (mod p).
¿Cuánto cuesta?
La herramienta del navegador es gratuita y se ejecuta en local.
¿Es 2 un residuo cúbico módulo 7?
No. El máximo común divisor de 3 y 6 es 3, así que la prueba eleva 2 a la potencia 2, que da 4 módulo 7 en lugar de 1. Por tanto, ningún entero al cubo deja resto 2.
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/numth/power-residue-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":2,"k":3,"p":7}'const res = await fetch("https://api.kit.forhosting.com/numth/power-residue-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": 2,
"k": 3,
"p": 7
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/power-residue-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": 2,
"k": 3,
"p": 7
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/power-residue-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":2,"k":3,"p":7}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":2,"k":3,"p":7}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/power-residue-check", 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
{
"a": 2,
"k": 3,
"p": 7
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.power_residue_check",
"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.
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
Contrato de entrada, comprobación de primalidad y campos de respuesta
El módulo p debe ser un primo entre dos y un billón inclusive; valores compuestos como nueve o quince se rechazan con invalid_input y un mensaje que nombra el campo e indica que p no es primo, de modo que esas llamadas no se cobran. El candidato a puede ser negativo o mayor que p en valor absoluto hasta el mismo tope de un billón; se reduce a a_mod en el intervalo semiabierto de cero inclusive a p exclusive antes de la prueba. En caso de éxito la carga útil siempre incluye a, k, p, a_mod, el booleano is_power_residue, el gcd de k y p menos uno, el group_order igual a p menos uno y una breve cadena de interpretación en inglés. Cuando a_mod es distinto de cero la carga también informa criterion_exp igual a (p menos uno) dividido por ese gcd y criterion_value igual a a_mod elevado a ese exponente módulo p, que vale uno exactamente cuando el bit de residuo es verdadero. La misma función pura alimenta la herramienta gratuita del navegador y la ruta de API de pago.
Dónde aparecen las comprobaciones de residuos de potencia superior
Los profesores proponen problemas como decidir si tres es residuo de quinta potencia módulo once o listar qué clases son cubos módulo trece y quieren una respuesta JSON determinista en lugar de una tabla manuscrita que puede omitir una clase. Como la capacidad es un motor parse puro no hay deriva del modelo, ni clave de API externa ni estado almacenado: el mismo triple siempre produce el mismo booleano y el mismo valor de criterio. El precio de la API es la base publicada de $0.002 por elemento exitoso; la validación fallida no consume saldo.
Preguntas técnicas
¿Se considera 0 un residuo de potencia k-ésima?
Sí. Para todo k ≥ 1 se tiene 0^k ≡ 0 (mod p), de modo que a_mod = 0 siempre es residuo de potencia y se omiten los campos del exponente de criterio.