Ecuación de Pell
El solucionador de la ecuación de Pell calcula la solución fundamental de x² − Dy² = 1 para un entero positivo D que no sea un cuadrado perfecto.
Ejecutar — gratis
Introduzca D y recibirá el menor par de enteros positivos x e y que satisface la igualdad. El cálculo emplea aritmética entera exacta, por lo que conserva incluso resultados que superan el intervalo numérico habitual de JavaScript. Resulta útil para ejercicios de teoría de números, el estudio de fracciones continuas, pruebas de algoritmos y programas que necesitan una solución canónica fiable.
Qué significa la solución fundamental
Para un entero positivo D fijo que no sea cuadrado, la ecuación de Pell busca valores enteros que cumplan x² − Dy² = 1. Existen infinitas soluciones positivas, pero todas se generan a partir de un único par no trivial mínimo. Esta calculadora devuelve ese par, denominado solución fundamental: x e y son positivos, la identidad se cumple exactamente y no existe un x positivo menor que resuelva la misma ecuación. Por ejemplo, D = 2 produce x = 3 e y = 2 porque 3² − 2 × 2² es igual a 1. La entrada debe ser un número entero entre 2 y 10,000,000. Los cuadrados perfectos se rechazan porque x² − Dy² se factoriza como (x − √D y)(x + √D y), de modo que no existe una solución positiva con y mayor que cero. Los resultados se expresan como cadenas decimales, no como valores de coma flotante. Así se conserva cada dígito cuando la solución fundamental es extraordinariamente grande, algo que ocurre incluso con ciertos valores moderados de D. Puede copiar la respuesta directamente a un sistema algebraico o a una biblioteca de precisión arbitraria sin redondearla antes.
Cómo encuentran la respuesta las fracciones continuas
El algoritmo desarrolla √D como una fracción continua simple periódica. Sus convergentes ofrecen aproximaciones racionales p/q cada vez más precisas de √D, y el numerador y el denominador de uno de ellos terminan cumpliendo p² − Dq² = 1. El solucionador actualiza el estado de la fracción continua y las dos recurrencias de convergentes mediante operaciones enteras deterministas. Tras cada paso comprueba la identidad de Pell con aritmética BigInt y devuelve inmediatamente la primera solución positiva. Ese primer convergente válido es la solución fundamental; por tanto, la herramienta no necesita recorrer pares enteros arbitrarios ni adivinar un límite para x e y. El recuento de iteraciones indica cuántos convergentes se probaron, incluida la parte entera inicial de √D. Este campo permite comparar longitudes de período o examinar el rendimiento, pero no altera el resultado matemático. La prueba final de la identidad no utiliza aproximaciones numéricas. La raíz cuadrada ordinaria solo determina el suelo entero exacto para el D acotado; todos los valores potencialmente grandes y todas las igualdades se calculan de forma exacta.
Cómo utilizar y comprobar los valores devueltos
Envíe un objeto con el campo d, por ejemplo {"d": 13}. También se admite el alias D en mayúscula para fórmulas copiadas con la notación convencional. Una respuesta correcta contiene d, x, y e iterations. En el código de su aplicación, trate x e y como cadenas de enteros decimales: los lenguajes con enteros de precisión arbitraria pueden interpretarlas directamente; los sistemas limitados a números de ancho fijo deben conservar las cadenas o emplear una biblioteca de enteros grandes. Para verificar el resultado de manera independiente, eleve x al cuadrado, reste D multiplicado por el cuadrado de y y confirme que el resultado sea exactamente uno. Realice esa comprobación con aritmética entera, no con coma flotante. Los tipos no válidos, las fracciones, los valores fuera del intervalo publicado y los cuadrados perfectos generan un error de entrada no válida en lugar de un resultado engañoso. El solucionador no usa red, aleatoriedad, estado almacenado ni fecha actual, por lo que el mismo D siempre genera la misma respuesta. El navegador sirve para cálculos individuales; la API cuesta $0.002 por solicitud cuando necesite integrarla en un script, servicio educativo o conjunto de pruebas.
Qué puede hacer con ella
Compruebe ejercicios de teoría de números
Calcule la solución canónica mínima y contraste un desarrollo manual en fracción continua con valores exactos de x e y.
Cree casos de prueba deterministas
Genere soluciones exactas de Pell para validar aritmética de precisión arbitraria, recurrencias o rutinas de álgebra computacional.
Explore períodos de fracciones continuas
Compare el número de iteraciones y el tamaño de las soluciones para distintos valores no cuadrados de D.
Preguntas frecuentes
¿Qué devuelve el solucionador?
Devuelve el valor d, la solución positiva fundamental x e y como cadenas decimales exactas y el número de convergentes probados.
¿Por qué x e y son cadenas?
Las soluciones de Pell pueden superar el intervalo entero seguro de entornos JSON habituales. Las cadenas decimales evitan cualquier redondeo.
¿Por qué se rechaza un D cuadrado perfecto?
Si D es cuadrado, no existe una solución de Pell no trivial con y positivo y, por ello, tampoco una solución positiva fundamental.
¿Qué intervalo de entrada se admite?
D debe ser un entero completo no cuadrado entre 2 y 10,000,000.
¿Cuánto cuesta una llamada a la API?
Cada solicitud a la API cuesta $0.002. También puede ejecutar la capacidad 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/pell-equation-solver \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"d":61}'const res = await fetch("https://api.kit.forhosting.com/numth/pell-equation-solver", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"d": 61
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/pell-equation-solver",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"d": 61
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/pell-equation-solver", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"d":61}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"d":61}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/pell-equation-solver", 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
{
"d": 61
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.pell_equation_solver",
"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_d | 10000000 |
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. |