División modular
Divida en aritmética modular: 8 entre 3 módulo 11 da 10, porque el inverso de 3 es 4 y 3 por 10 deja resto 8. También obtiene el inverso, el mcd y un valor de control para verificarlo. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- A
- 8
- B
- 3
- N
- 11
- A módulo
- 8
- B módulo
- 3
- Inversa
- 4
- Cociente
- 10
La división modular busca un residuo q tal que b por q sea congruente con a módulo n. En la aritmética ordinaria usted simplemente divide; en aritmética modular la división es multiplicar por el inverso modular del divisor. Ese inverso existe solo cuando b y n son coprimos. Laboratorios de criptografía, programación competitiva, tareas de cuerpos finitos y ejercicios de congruencias lineales necesitan esta operación, pero muchos lenguajes solo exponen un GCD o un inverso modular suelto y dejan el paso de multiplicar a usted. Esta calculadora toma los enteros a, b y el módulo n, invierte b módulo n con el algoritmo de Euclides extendido cuando es posible, multiplica por a y devuelve el único cociente no negativo entre cero y n menos uno, junto con el inverso, el gcd y un producto de verificación para que pueda comprobar el resultado sin rederivar los pasos.
Qué significa la división modular y cuándo está definida
En los enteros todo número no nulo tiene un recíproco en los racionales, de modo que la división está definida fuera del cero. Módulo n el panorama es más estricto: los residuos forman un anillo y solo las unidades—elementos con inverso multiplicativo—pueden actuar como divisores legales. Decimos que q es un cociente modular de a dividido por b módulo n cuando b por q deja el mismo resto que a al reducir ambos productos módulo n.
De forma equivalente, q es congruente con a por el inverso de b módulo n. El inverso de b existe si y solo si el gcd de b y n es uno; en caso contrario todo múltiplo de b comparte un factor con n y no puede alcanzar todas las clases de residuo, así que ningún q único sirve para un a arbitrario.
Ingenieros y estudiantes se topan con esta barrera al dividir en un módulo compuesto que no es un cuerpo primo, al cancelar un coeficiente en una congruencia lineal o al deshacer una multiplicación modular en un paso de hash o cifrado. Tenga en cuenta que a no necesita ser coprimo con n; solo el divisor b debe ser una unidad. Esa asimetría se olvida con facilidad si solo se recuerda el caso especial del inverso modular con a igual a uno.
Uso práctico, límites, precios y entrega
Use la herramienta del navegador cuando desee un cociente modular rápido al leer una nota de teoría de números, comprobar una tarea de la forma b x congruente con a mod n o depurar una tubería modular que multiplica por inversos a mano. Se aceptan enteros a y b con valor absoluto como máximo un billón y módulos n de dos a un billón. Los resultados son deterministas: el mismo triplete siempre produce los mismos campos quotient, inverse y check.
Si solo necesita el inverso de b sin multiplicar por a, prefiera la capacidad dedicada de inverso modular; esta página cubre la intención completa de división que se busca como división modular o a dividido por b mod n.
Qué puede hacer con ella
Laboratorios de cripto y cuerpos finitos
Docentes y estudiantes pueden dividir elementos de un cuerpo módulo un primo, o inspeccionar el gcd cuando un módulo compuesto de muestra hace no invertible al divisor.
Correctores de tareas y congruencias lineales
Calificadores automáticos pueden verificar soluciones de b x ≡ a (mod n) comparando el cociente devuelto y rechazar casos en los que no existe una clase de residuo única.
Preguntas frecuentes
¿Qué ocurre si b no es invertible módulo n?
El mensaje incluye gcd(b, n) para que sepa por qué la división modular no está definida. La validación fallida no se cobra.
¿Cómo se calcula el cociente?
El algoritmo de Euclides extendido halla b⁻¹ mod n cuando gcd(b, n) = 1; la calculadora multiplica ese inverso por a módulo n con aritmética entera exacta.
¿Es gratuita la calculadora de división modular?
La herramienta del navegador se ejecuta gratis en su dispositivo.
¿Qué rangos de a, b y n se aceptan?
n debe ser un entero de 2 a 1,000,000,000,000. a y b deben ser enteros cuyo valor absoluto no supere ese mismo límite. Los valores fuera de esos rangos se rechazan.
¿Cuánto es 8 entre 3 módulo 11?
El resultado es 10. El inverso de 3 módulo 11 es 4, y al multiplicar 8 por él se obtiene el cociente 10. Como control, 3 por 10 deja resto 8 al dividir entre 11.
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/modular-division \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":8,"b":3,"n":11}'const res = await fetch("https://api.kit.forhosting.com/numth/modular-division", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": 8,
"b": 3,
"n": 11
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/modular-division",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": 8,
"b": 3,
"n": 11
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/modular-division", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":8,"b":3,"n":11}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":8,"b":3,"n":11}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/modular-division", 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": 8,
"b": 3,
"n": 11
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.modular_division",
"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
Qué significa la división modular y cuándo está definida
Devolver un error invalid_input explícito cuando b no es invertible es más útil que un residuo silencioso e incorrecto: el cliente aprende que la división no está definida para ese par y puede ramificar según el gcd informado en lugar de confiar en una biblioteca a medias.
Cómo esta calculadora invierte b y multiplica por a
Llame a la capacidad con los campos enteros a, b y n, donde n es al menos dos. La implementación reduce primero a y b a residuos no negativos a_mod y b_mod en el rango de cero a n menos uno, y luego ejecuta el algoritmo de Euclides extendido sobre b_mod y n. Cada paso registra el cociente entero y actualiza los coeficientes de Bézout de modo que al terminar el coeficiente de b_mod por b_mod más un coeficiente de n iguala el gcd. Si ese gcd no es uno, la petición falla con invalid_input y un mensaje que nombra b, n y el gcd; no se cobra nada. Si el gcd es uno, el coeficiente de b_mod se reduce a cero hasta n menos uno y se guarda como inverse. El producto modular de a_mod e inverse se calcula con aritmética BigInt exacta para que residuos grandes sigan siendo correctos hasta el límite publicado, y el producto se devuelve como quotient. La respuesta también repite a, b, n, a_mod, b_mod, gcd y check igual a b_mod por quotient módulo n, que debe coincidir con a_mod cuando la llamada tiene éxito. Los valores absolutos de a y b, y el módulo n, están acotados por un billón para que todo intermedio quede en un régimen de enteros seguros del Worker.
Uso práctico, límites, precios y entrega
Use la API cuando un script, calificador o plataforma educativa necesite muchas divisiones sin incrustar una rutina de GCD extendido y un paso cuidadoso de multiply-mod. Cada petición exitosa es un ítem facturable a $0.002; los fallos de validación y los divisores no invertibles no consumen saldo. Conecte el endpoint a ayudas de concurso, demos de cuerpos finitos, laboratorios RSA que necesiten más que inversos sueltos o cualquier tubería entera que prefiera aritmética exacta frente a heurísticas de punto flotante. Como la unidad es un solo ítem y el motor es parse puro, la latencia se mantiene baja y el canal web gratuito refleja la API de pago sin un segundo camino de código que pueda divergir.
Casos de integración
Programación competitiva y aritmética modular
Los programadores competitivos pueden calcular a/b mod n bajo módulos primos o compuestos y detectar divisores no invertibles con invalid_input en lugar de fragmentos ad hoc de GCD extendido.
Preguntas técnicas
¿Cómo calculo la división modular a ÷ b mod n?
Envíe JSON con los campos enteros a, b y n (n ≥ 2) a numth.modular_division. Si tiene éxito, la respuesta devuelve quotient en 0..n−1, más el inverso de b, a_mod, b_mod, gcd y check igual a a_mod.