Calculadora de orden multiplicativo módulo n
La calculadora de orden multiplicativo obtiene el menor exponente positivo k para el que a elevado a k es congruente con 1 módulo n.
Ejecutar — gratis
Introduzca una base entera a y un módulo n; el resultado incluye la base reducida, el indicador de Euler, el orden y una comprobación modular directa. El cálculo solo está definido cuando a y n son coprimos, por lo que los pares no válidos generan un error claro en lugar de un número engañoso. Resulta útil en ejercicios de aritmética modular, análisis de subgrupos cíclicos, patrones periódicos y teoría elemental de números.
Qué significa el orden multiplicativo
Para los enteros a y n, el orden multiplicativo de a módulo n es el menor entero positivo k tal que a<sup>k</sup> deja resto 1 al dividirse entre n. La expresión «menor positivo» es esencial: otros exponentes posteriores también pueden producir 1, pero el orden señala el primer retorno a la identidad en la multiplicación modular. Por ejemplo, las potencias de 2 módulo 9 tienen residuos 2, 4, 8, 7, 5 y, finalmente, 1; por tanto, el orden es 6. Este concepto describe el tamaño del subgrupo cíclico generado por a dentro de las clases de residuos invertibles módulo n. La calculadora reduce a a su residuo no negativo estándar antes de operar, de modo que trata de forma coherente las bases negativas y las mayores que n. También devuelve un valor de comprobación calculado con el orden obtenido. Un resultado de 1 confirma la congruencia definitoria, mientras que el proceso de reducción garantiza que ningún divisor propio restante del exponente candidato pueda satisfacerla.
Por qué se exige que sean coprimos
El orden multiplicativo módulo n solo existe cuando gcd(a, n) es 1. No se trata de una simple convención de entrada. Un elemento debe tener inverso multiplicativo módulo n para que sus potencias pertenezcan al grupo finito de unidades y puedan regresar a 1. Si a y n comparten un factor, toda potencia positiva de a conserva un obstáculo de divisibilidad compatible y no puede ser congruente con 1 módulo n. La calculadora comprueba esta condición de inmediato e indica el máximo común divisor real cuando no se cumple. Además, el módulo debe ser al menos 2, pues el problema habitual del orden se plantea en un sistema de residuos no trivial. La base puede ser cero, negativa o positiva dentro del límite publicado, aunque cero no es válido para ningún módulo permitido porque nunca es coprimo con n. Al preparar la entrada, utilice enteros exactos, no decimales ni aproximaciones científicas. Así se conserva la aritmética discreta de la que dependen el máximo común divisor, la factorización y las potencias modulares.
Cómo se obtiene el exponente mínimo
La calculadora no prueba todos los exponentes de manera sucesiva. Primero factoriza n lo necesario para calcular el indicador de Euler phi(n). El teorema de Euler garantiza que a elevado a phi(n) es congruente con 1 siempre que gcd(a, n) sea 1, por lo que el orden buscado debe dividir a phi(n). Después, el algoritmo factoriza phi(n) y comprueba repetidamente si dividir el candidato actual por uno de sus factores primos sigue dando una potencia modular igual a 1. Cuando ocurre, el candidato menor sustituye al anterior. Cuando ya no se puede retirar ningún factor primo, el candidato restante es el orden multiplicativo. La exponenciación modular emplea cuadrados sucesivos y mantiene los valores intermedios reducidos módulo n; toda la aritmética entera es exacta. Este método es mucho más rápido que recorrer cada exponente positivo, sobre todo si el orden es grande. Las entradas están limitadas a un billón para que la división de prueba tenga un techo determinista claro, adecuado tanto para la herramienta del navegador como para llamadas API automatizadas.
Qué puede hacer con ella
Comprobar un ejercicio de teoría de números
Confirme el exponente mínimo, el indicador de Euler, el residuo reducido y la congruencia final sin enumerar manualmente una larga sucesión de potencias.
Estudiar subgrupos cíclicos
Mida el subgrupo generado por un residuo invertible y compare su orden con phi(n) al investigar raíces primitivas.
Analizar patrones modulares periódicos
Determine el periodo exacto de una multiplicación repetida módulo n en cálculos de recurrencia, divisibilidad y criptografía elemental.
Preguntas frecuentes
¿Qué representa el orden multiplicativo obtenido?
Es el menor entero positivo k para el cual a^k es congruente con 1 módulo n.
¿Por qué a y n deben ser coprimos?
Solo los residuos con gcd(a, n) igual a 1 son invertibles módulo n y pueden tener orden multiplicativo.
¿Puede ser negativa la base a?
Sí. La calculadora reduce a a su residuo no negativo módulo n antes de calcular el orden.
¿El orden siempre coincide con el indicador de Euler phi(n)?
No. Para una entrada válida, el orden siempre divide a phi(n), pero solo es igual a phi(n) cuando a genera todo el grupo de unidades módulo n.
¿Cuánto cuesta una solicitud API?
Cada solicitud API cuesta $0.002. El mismo cálculo determinista está disponible gratis en el navegador.
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/multiplicative-order \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":2,"n":9}'const res = await fetch("https://api.kit.forhosting.com/numth/multiplicative-order", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": 2,
"n": 9
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/multiplicative-order",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": 2,
"n": 9
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/multiplicative-order", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":2,"n":9}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":2,"n":9}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/multiplicative-order", 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,
"n": 9
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.multiplicative_order",
"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 | 1000000000000 |
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. |