Resolución de ecuaciones cuadráticas modulares

ax² + bx + c ≡ 0 (mod n)
 
 
 
 
 

Esta calculadora resuelve ecuaciones de la forma a⁢x² + bx + c ≡ 0 (mod n) donde la incógnita entera x se encuentra en el rango 0 ≤ x < n. En particular, puede hallar raíces cuadradas modulares si ingresa a = -1, b = 0, c = número cuya raíz se desea hallar yn = módulo.

El programa acepta números de hasta 10000 dígitos, pero se debe factorizar el módulo n (algunos números grandes no se pueden factorizar en un tiempo razonable). El motor de factorización utilizado es el la aplicación de factorización de números enteros, que usa los métodos ECM y SIQS.

Cuando a no es cero, la cantidad de soluciones depende de la cantidad de factores primos distintos del módulo, así que si el módulo tiene muchos factores primos pequeños (más de 14), el programa se puede quedar sin memoria y no mostrará ninguna solución.

Expresiones

Puedes ingresar expresiones que usen los siguientes operadores y paréntesis:

  • + para suma
  • - para resta
  • * para multiplicación
  • / para división entera
  • % para el resto de la división entera
  • ^ o ** para exponenciación (el exponente debe ser mayor o igual que cero).
  • n!: factorial (n debe ser mayor o igual que cero).
  • p#: primorial (producto de todos los primos menores o iguales a p).
  • B(n): Número probablemente primo anterior a n
  • F(n): Número de Fibonacci Fn
  • L(n): Número de Lucas Ln = Fn-1 + Fn+1
  • N(n): Número probablemente primo posterior a n
  • P(n): particiones irrestrictas (cantidad de descomposiciones de n en sumas de números enteros sin tener en cuenta el orden).
  • Gcd(m,n): Máximo común divisor de estos dos números enteros.
  • Modinv(m,n): inverso de m modulo n, sólo válido cuando gcd(m,n)=1.
  • Modexp(m,n,r): halla mn módulo r.

Puedes usar el prefijo 0x para números hexadecimales, por ejemplo 0x38 es igual a 56.

El símbolo de exponenciación no se encuentra en algunos dispositivos móviles. En este caso se puede ingresar dos asteriscos (**) para representar el operador de exponenciación.

Código fuente

Puedes bajar el código fuente de esta aplicación y del viejo applet de ecuaciones cuadráticas modulares desde GitHub. El código fuente está escrito en lenguaje C, por lo que es necesario Emscripten para generar Javascript.

Escrito por Dario Alpern. Actualizado el 3 de noviembre de 2017.

Si encuentra algún error o tiene algún comentario, por favor llene el formulario.