ForHosting KIT · Matemáticas

Comprobador de residuo cuadrático

Le dice si un número tiene raíz cuadrada módulo m y enumera todas las raíces: 2 es un cuadrado módulo 7, porque 3 al cuadrado es 9, que deja 2, y las raíces son 3 y 4. Gratis en su navegador.

  • Gratis
  • Funciona en su navegador
  • Sin registro
  • Sus datos no salen de su equipo
Úselo desde WebAPIEmailTelegramApp pronto
Si escribe
A
2
Módulo m
7
Obtiene
A mód
2
Raíces
3, 4
N.º de raíces
2

Un entero a es residuo cuadrático módulo m cuando algún entero x cumple que x al cuadrado es congruente con a módulo m; en otras palabras, a tiene una raíz cuadrada modular. Esa pregunta de sí o no aparece en deberes de criptografía, teoría de números de concursos y cualquier flujo que deba saber si una congruencia es un cuadrado perfecto antes de invertir esfuerzo en un solucionador mayor. Esta capacidad toma a y un módulo m (al menos dos), reduce a al rango canónico de cero a m menos uno, busca cada raíz en ese rango y puede devolver opcionalmente la lista completa de clases de residuo cuadrático módulo m.

Qué significa la residualidad cuadrática para módulos generales

En teoría elemental de números un residuo cuadrático módulo un primo p suele significar un entero a no divisible por p para el cual la congruencia x al cuadrado igual a a módulo p tiene solución; el cero a menudo se trata aparte como el cuadrado trivial. Para un módulo compuesto m la misma definición se extiende con claridad: a es residuo cuadrático módulo m cuando existe al menos un entero x con x al cuadrado congruente con a módulo m, incluido el caso a congruente con cero.

Las soluciones siguen patrones que dependen de la factorización en potencias primas de m; por ejemplo módulo un primo hay cero o dos raíces no nulas por cada clase de residuo no nula que es un cuadrado, mientras que los módulos compuestos pueden admitir más raíces. Herramientas clásicas como los símbolos de Legendre y Jacobi dan pruebas rápidas cuando m es un primo impar o cuando solo se necesita un carácter multiplicativo, pero no enumeran por sí solas cada raíz para m arbitrario.

Un barrido directo de x de cero a m menos uno evalúa cada clase de cuadrado exactamente una vez y por tanto responde tanto a la existencia como a la enumeración para cualquier módulo dentro de un tamaño acotado fijo.

Dónde aparecen las comprobaciones de cuadrados modulares en el trabajo real

Los programadores de concursos a menudo necesitan un oráculo rápido antes de invocar Tonelli–Shanks o una combinación CRT de raíces en potencias primas: si el bit de residuo es falso, no tiene sentido construir una raíz cuadrada. Los estudiantes de criptografía verifican ejemplos de cifrados al estilo Rabin, ejercicios de reciprocidad cuadrática y variantes toy de Diffie–Hellman que mencionan símbolos de residuo. Los ingenieros que reconcilian horarios periódicos o experimentos de cubos hash a veces preguntan si un paso es una clase de cuadrado módulo un período compuesto.

Si solo necesita un sí o no al estilo del símbolo de Legendre para un primo grande más allá del límite de barrido, factorice o reduzca primero; dentro del tope esta página es la respuesta constructiva completa.

Comprobaciones de deberes y concursos

Decida si a es un cuadrado módulo m y lea cada raíz en 0..m-1 para ejercicios de teoría de números sin construir un solucionador CRT completo.

Prefiltro antes de extraer raíces

Rechace no residuos temprano en una tubería que de otro modo intentaría algoritmos de raíz cuadrada modular en módulos compuestos o primos.

¿Qué es un residuo cuadrático módulo m?

Un entero a es residuo cuadrático módulo m si existe un entero x tal que x² ≡ a (mod m). Esta herramienta informa ese hecho y enumera cada tal x en 0..m-1.

¿Por qué m debe ser al menos 2?

El módulo 0 no está definido para congruencias en esta superficie de producto, y el módulo 1 colapsa todo entero a una sola clase.

¿Qué tamaño de módulo se admite?

m debe ser un entero de 2 a 1,000,000 inclusive. El candidato a puede ser cualquier entero seguro; se reduce módulo m antes del barrido.

¿Cuánto cuesta?

La herramienta del navegador es gratuita y se ejecuta en local.

¿Es 3 un residuo cuadrático módulo 7?

No. Al elevar al cuadrado cada resto módulo 7 solo se obtiene 0, 1, 2 o 4, así que ningún entero al cuadrado deja 3, y la lista de raíces sale vacía.

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.

POSThttps://api.kit.forhosting.com/numth/quadratic-residue

¿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.

curl -X POST https://api.kit.forhosting.com/numth/quadratic-residue \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"a":2,"m":7}'
{
  "a": 2,
  "m": 7
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "numth.quadratic_residue",
  "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.

Por solicitud$0.002

Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.

min_m2
max_m1000000
max_abs_a9007199254740991
HTTPCódigoSignificado
401unauthorizedAPI key ausente o inválida.
402insufficient_balanceEl saldo no cubre el precio de la tarea.
404unknown_typeEl tipo de tarea no existe.
429rate_limitedDemasiadas peticiones. Use el webhook en vez de sondear.

Qué significa la residualidad cuadrática para módulos generales

Ese enfoque exhaustivo es lo que implementa este extremo: solo aritmética entera determinista, sin redondeo en coma flotante, y una forma JSON estable que puede afirmar en pruebas.

Contrato de entrada, límites y campos de respuesta

Envíe enteros a y m. Comprobaciones típicas de clase: dos es residuo cuadrático módulo siete porque tres al cuadrado es nueve que es dos mód siete, y las raíces son tres y cuatro; tres no es residuo cuadrático módulo siete. Los no enteros, los campos obligatorios vacíos y los módulos por encima del tope fallan la validación con un mensaje claro que nombra el campo. El módulo m debe ser al menos dos y como máximo un millón; los valores por debajo de dos se rechazan con invalid_input y no se cobran, porque la aritmética modular con módulo cero o uno no es una superficie de producto admitida. El candidato a puede ser negativo o mayor que m; se reduce a a_mod en el intervalo semiabierto de cero inclusive a m exclusive antes de la búsqueda de cuadrados. El booleano opcional list_residues (alias list_all y all_residues) pide cada valor distinto de x al cuadrado módulo m, ordenado ascendente, junto con residue_count. En caso de éxito la carga siempre incluye a, m, a_mod, is_quadratic_residue, roots como la lista completa de soluciones en cero a m menos uno, y root_count. Cuando list_residues es verdadero para m igual a siete se obtienen las clases ordenadas cero, uno, dos y cuatro — la imagen del mapa de elevación al cuadrado en el anillo de enteros módulo siete.

Dónde aparecen las comprobaciones de cuadrados modulares en el trabajo real

Los docentes asignan problemas como listar todos los residuos cuadráticos módulo veintiuno o decidir si cinco es un cuadrado módulo trece y quieren una respuesta JSON determinista en lugar de una tabla a mano que puede contener errores de uno. Como la capacidad es un motor de parse puro no hay deriva de modelo, ni clave API externa, ni estado almacenado: el mismo par siempre produce las mismas raíces y la misma lista opcional de residuos. El precio de la API es la base publicada de $0.002 por ítem exitoso; la validación fallida no consume saldo.

Enumerar clases de residuo

Active list_residues para obtener la imagen ordenada del mapa de elevación al cuadrado módulo m para tablas, diapositivas didácticas o pruebas basadas en propiedades.

¿Se considera 0 un residuo cuadrático?

Sí. 0² ≡ 0 (mod m), así que a_mod = 0 siempre es un residuo e incluye la raíz 0 (y posiblemente otras para m compuesto).

Ver la documentación completa del KIT →