Resolución de ecuaciones cuadráticas en dos variables enteras

  1. Alpertron
  2. Aplicaciones web
  3. Resolución de ecuaciones cuadráticas en dos variables enteras
a⁢x² + b⁢x⁢y + c⁢y² + d⁢x + e⁢y + f = 0
 
 
 
 
 
 
Acciones
Funciones

Esta aplicación Web resuelve ecuaciones de la forma a⁢x² + b⁢x⁢y + c⁢y² + dx + ey + f = 0 donde las incógnitas x e y son números enteros.

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

Si hay muchas soluciones, la aplicación se puede quedar sin memoria y no mostrará ningún resultado.

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).
  • <, ==, >; <=, >=, != para comparaciones. Los operadores devuelven cero si es falso y -1 si es verdadero.
  • Ans: obtiene la última respuesta.
  • AND, OR, XOR, NOT para lógica binaria. Las operaciones se hacen en binario (base 2). Se agregan infinitos ceros (unos) a la izquierda de los números positivos (negativos).
  • SHL o <<: Si b ≥ 0, a SHL b desplaza el valor a a la izquierda la cantidad de bits especificada por b. Esto equivale a a × 2b. En caso contrario, a SHL b desplaza el valor a a la derecha la cantidad de bits especificada por −b. Esto equivale a floor(a / 2−b). Ejemplo: 5 SHL 3 = 40.
  • SHR o >>: Si b ≥ 0, a SHR b desplaza el valor a a la derecha la cantidad de bits especificada por b. Esto equivale a floor(a / 2b). En caso contrario, a SHR b desplaza el valor a a la izquierda la cantidad de bits especificada por −b. Esto equivale a a × 2−b. Ejemplo: -19 SHR 2 = -5.
  • n!: factorial (n debe ser mayor o igual que cero). Ejemplo: 6! = 6 × 5 × 4 × 3 × 2 = 720.
  • n!! ... !: factorial múltiple (n debe ser mayor o igual que cero). Es el producto de n por n − k por n − 2k ... (todos los números son mayores que cero) donde k es la cantidad de signos de exclamación. Ejemplo: 7!! = 7 × 5 × 3 × 1 = 105.
  • p#: primorial (producto de todos los primos menores o iguales a p). Ejemplo: 12# = 11 × 7 × 5 × 3 × 2 = 2310.
  • B(n): número probablemente primo inmediatamente anterior a n. Ejemplo: B(24) = 23.
  • F(n): Número de Fibonacci Fn que corresponde a la secuencia 0, 1, 1, 2, 3, 5, 8, 13, 21, etc. donde cada elemento es igual a la suma de los dos anteriores. Ejemplo: F(7) = 13.
  • L(n): Número de Lucas Ln = Fn-1 + Fn+1
  • N(n): número probablemente primo inmediatamente posterior a n. Ejemplo: N(24) = 29.
  • P(n): particiones irrestrictas (cantidad de descomposiciones de n en sumas de números enteros sin tener en cuenta el orden). Ejemplo: P(4) = 5 porque el número 4 se puede particionar de 5 formas distintas: 4 = 3+1 = 2+2 = 2+1+1 = 1+1+1+1.
  • Gcd(m,n, ...): Máximo común divisor de estos números enteros. Ejemplo: GCD(12,16) = 4.
  • Lcm(m,n, ...): Mínimo común múltiplo de estos números enteros. Ejemplo: LCM(12,16,24) = 48.
  • FloorDiv(m,n): parte entera del cociente de m dividido por n. Ejemplos: floordiv(10, 7) = 1 y floordiv(-10, 7) = -2.
  • Mod(m,n): valor de m módulo el valor absoluto de n. Ejemplos: Mod(10, 7) = 3 y Mod(-10, 7) = 4.
  • Modinv(m,n): inverso de m módulo n, sólo válido cuando m y n son coprimos, es decir que no tienen factores en común. Ejemplo: Modinv(3,7) = 5 porque 3 × 5 ≡ 1 (mod 7)
  • Modpow(m,n,r): halla mn módulo r. Ejemplo: Modpow(3, 4, 7) = 4, porque 34 ≡ 4 (mod 7).
  • Totient(n): cantidad de enteros positivos menores que n coprimos con n. Ejemplo: Totient(6) = 2 porque 1 y 5 no tienen factores en común con 6.
  • Jacobi(m,n): obtiene el símbolo de Jacobi de m y n. Cuando el segundo argumento es primo, el resultado es cero si m es múltiplo de n, es uno si hay una solución a x² ≡ m (mód n) y es igual a −1 cuando la congruencia mencionada no tiene soluciones.
  • Random(m,n): número entero aleatorio entre m y n.
  • Abs(n): valor absoluto de n.
  • Sign(n): retorna cero si n es cero, −1 si es negativo o 1 si es positivo.
  • IsPrime(n): retorna cero si n no es un primo probable y −1 si lo es. Ejemplo: IsPrime(5) = −1.
  • Sqrt(n): parte entera de la raíz cuadrada del argumento.
  • Iroot(n,r): Raíz r-ésima entera del primer argumento. Ejemplo: Iroot(8, 3) = 2.
  • NumFact(n): cantidad de factores primos distintos de n. Ejemplo: NumFact(28) = 2 porque los factores primos son 2 y 7.
  • MinFact(n): mínimo factor primo de n. Ejemplo: MinFact(28) = 2 porque los factores primos son 2 y 7.
  • MaxFact(n): máximo factor primo de n. Ejemplo: MaxFact(28) = 7 porque los factores primos son 2 y 7.
  • NumDivs(n): cantidad de divisores positivos de n. Ejemplo: NumDivs(28) = 6 porque los divisores de 28 son 1, 2, 4, 7, 14 y 28.
  • SumDivs(n): suma de todos los divisores positivos de n. Ejemplo: SumDivs(28) = 56 porque 1 + 2 + 4 + 7 + 14 + 28 = 56.
  • NumDigits(n,r): cantidad de dígitos de n en base r. Ejemplo: NumDigits(13, 2) = 4 porque 13 en binario (base 2) se expresa como 1101.
  • SumDigits(n,r): suma de dígitos de n en base r. Ejemplo: SumDigits(213, 10) = 6 porque la suma de los dígitos expresados en decimal es 2+1+3 = 6.
  • RevDigits(n,r): halla el valor que se obtiene escribiendo para atrás los dígitos de n en base r. Ejemplo: RevDigits(213, 10) = 312.
  • ConcatFact(m,n): concatena los factores primos de n de acuerdo al modo expresado en m según lo indicado en la siguiente tabla:
    Modos de la función ConcatFact
    ModoOrden de los factoresFactores repetidosEjemplo
    0CrecienteNoconcatfact(0,36) = 23
    1DecrecienteNoconcatfact(1,36) = 32
    2CrecienteSíconcatfact(2,36) = 2233
    3DecrecienteSíconcatfact(3,36) = 3322

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.

Configuración

Puedes cambiar la configuración de esta aplicación apretando el botón Config mientras el programa no está factorizando. En ese momento aparecerá una nueva ventana donde puedes seleccionar los siguientes ajustes:

  • Dígitos por grupo: Para mejorar la legibilidad, los números grandes se separan mediante espacios formando grupos de una cantidad fija de dígitos. Con esta caja de entrada, puedes determinar la cantidad de dígitos por grupo.
  • Teclado: Esto permite que el usuario seleccione entre el teclado virtual númerico o completo (alfanumérico). El teclado virtual aparece en la pantalla cuando el usuario selecciona una caja de entrada en pantallas táctiles.

La configuración se almacena en tu dispositivo, así que si arrancas nuevamente la calculadora, los ajustes no se modificarán.

Código fuente

Puedes bajar el código fuente de esta aplicación y del viejo applet de ecuaciones cuadráticas enteras 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 13 de septiembre de 2026.

Esta aplicación requiere WebAssembly. Por favor habilítelo o use otro navegador web.
Suma,+,Resta,-,Multiplicación,*,División,/,Resto,%,Potencia,^,Resultado anterior,ans,Raíz cuadrada entera,sqrt1,Raíz entera\n\nPrimer argumento: radicando\nSegundo argumento: orden de la raíz,iroot2,Número aleatorio\n\nPrimer argumento: mínimo valor del número aleatorio\nSegundo argumento: máximo valor del número aleatorio,Random2,Valor absoluto,Abs1,Signo,Sign1
Igual,=,Distinto,!=,,,Mayor,>,Menor o igual,<=,Menor,<,Mayor o igual,>=
Desplazamiento a la izquierda\n\nOperando izquierdo: valor a desplazar\nOperando derecho: cantidad de bits, SHL ,Desplazamiento a la derecha\n\nOperando izquierdo: valor a desplazar\nOperando derecho: cantidad de bits, SHR ,,,Y lógica, AND ,O lógica, OR ,O exclusiva, XOR ,Negación lógica, NOT
,,Máximo común divisor\n\nSe pueden usar uno o más argumentos,GCD2,Mínimo común múltiplo\n\nSe pueden usar uno o más argumentos,LCM2,¿El valor es primo?,IsPrime1
Primo siguiente,N1,Primo anterior,B1,Concatenar factores primos\n\nPrimer argumento: modo\n0: Primos no repetidos en forma ascendente\n1: Primos no repetidos en forma descendente\n2: Primos repetidos en forma ascendente\n3: Primos repetidos en forma descendente\nSegundo argumento: valor a factorizar,ConcatFact2,,,Cantidad de dígitos\n\nPrimer argumento: valor\nSegundo argumento: base,NumDigits2,Suma de dígitos\n\nPrimer argumento: valor\nSegundo argumento: base,SumDigits2,Invertir dígitos\n\nPrimer argumento: valor\nSegundo argumento: base,RevDigits2
Parte entera del cociente\n\nPrimer argumento: dividendo\nSegundo argumento: divisor,FloorDiv2,Módulo\n\nPrimer argumento: valor\nSegundo argumento: módulo,Mod2,Inverso modular\n\nPrimer argumento: valor\nSegundo argumento: módulo,ModInv2,División modular\n\nPrimer argumento: dividendo\nSegundo argumento: divisor\nTercer argumento: módulo,ModDiv3,Exponenciación modular\n\nPrimer argumento: base\nSegundo argumento: exponente\nTercer argumento: módulo,ModPow3,Indicador de Euler,Totient1,Símbolo de Jacobi\n\nPrimer argumento: valor superior\nSegundo argumento: valor inferior,Jacobi2
Factorial,!,,,Primorial,#,Fibonacci,F1,Lucas,L1,Partición,P1
Suma,+,Resta,-,Multiplicación,*,División,/,,,Prefijo hex,0x,10,A,11,B,12,C,13,D,14,E,15,F
Paréntesis izquierdo,(,Paréntesis derecho,),
Por favor ingrese un número o expresión para el coeficiente {missing}.
Resolviendo la ecuación cuadrática...

Cálculo detenido por el usuario.

enviomail