Ternas pitagóricas desde un cateto
Escriba un cateto de un triángulo rectángulo y obtenga todos los triángulos enteros que lo comparten: un cateto de 20 tiene cuatro parejas, de 20-15-25 a 20-99-101. Cada terna se marca como primitiva o múltiplo, ordenada por el otro cateto. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Leg
- 20
- Cantidad
- 4
Una terna pitagórica es una tripleta de enteros positivos (a, b, c) que cumplen a² + b² = c²: las longitudes de los lados de un triángulo rectángulo de lados enteros. En el aula, en concursos y al generar triángulos de muestra suele partirse de un solo cateto conocido y preguntarse qué compañeros enteros completan la ecuación. Esta capacidad recibe la longitud de un cateto y devuelve cada terna compatible: el cateto fijo, el otro cateto posible, la hipotenusa y si la terna es primitiva.
Qué significan las ternas pitagóricas con un cateto fijo
Cuando fija un cateto a de un triángulo rectángulo y exige que el otro cateto b y la hipotenusa c sean también enteros positivos, está pidiendo todas las soluciones de a² + b² = c² con ese a constante. La terna más pequeña es la familiar familia 3-4-5; todo cateto entero de tres o más aparece en al menos una terna, a veces en varias.
Algunas soluciones son primitivas — gcd(a, b, c) vale uno — y otras son múltiplos enteros de una terna menor, como 6-8-10 a partir de 3-4-5. Los manuales pueden pedir solo la pareja primitiva, pero los problemas de construcción, los ángulos rectos exactos en píxeles y los caminos enteros en la red suelen necesitar la lista completa. Enumerar a mano implica buscar b tal que a² + b² sea un cuadrado perfecto, lo que se hace tedioso al crecer a y es fácil omitir un compañero intermedio.
Automatizar la búsqueda mantiene la lista completa, ordenada y lista para el siguiente paso de un pipeline, una corrección de deberes o un generador de datos geométricos de muestra.
Cómo la capacidad encuentra cada terna compatible
Algebraicamente, a² + b² = c² se reescribe como c² − b² = a², o (c − b)(c + b) = a². El motor recorre entonces cada par de divisores positivos (d, e) de a² con d = c − b, e = c + b, d menor que e, y d y e de la misma paridad para que b y c resulten enteros: b es (e − d) dividido entre dos y c es (e + d) dividido entre dos.
Cada par válido se convierte en la terna (a, b, c) con a igual al cateto solicitado; el motor también registra si gcd(a, b, c) es uno, de modo que usted distingue ternas primitivas de las escaladas sin un segundo paso. No hay aleatoriedad, dependencia del reloj ni llamada de red.
Qué puede hacer con ella
Comprobación de deberes y concursos
Verifique la lista completa de ternas enteras de un estudiante para un cateto dado frente a una respuesta canónica, incluyendo cuáles son primitivas.
Ángulos rectos en red y CAD
Elija compañeros enteros de otro cateto e hipotenusa para una longitud fija, de modo que dibujos, rejillas o trayectorias de herramienta mantengan ángulos rectos pitagóricos exactos sin error de coma flotante.
Preguntas frecuentes
¿Por qué el cateto debe ser al menos tres?
Ninguna terna pitagórica de enteros positivos tiene un cateto de 1 o 2.
¿Qué ternas del cateto 20 son primitivas?
Dos de las cuatro: 20-21-29 y 20-99-101, cuyos tres lados no tienen divisor común. Las otras dos, 20-15-25 y 20-48-52, son múltiplos enteros de triángulos más pequeños.
¿Qué significa primitiva en la lista?
Una terna es primitiva cuando sus tres lados no tienen más divisor común que el 1. La terna 6-8-10 no lo es, porque es simplemente 3-4-5 multiplicada por dos.
¿Qué tamaño puede tener el cateto?
Cualquier entero desde 3 hasta un millón. Los valores menores que 3, los decimales y lo que supere el tope se rechazan con un mensaje claro, en lugar de dar una lista incompleta.
¿Cómo encuentra todos los catetos compañeros?
Reescribe a² + b² = c² como (c − b)(c + b) = a² y prueba cada pareja de divisores de a² con la misma paridad. Cada pareja da un triángulo entero, así que no se escapa ninguno.
Herramientas relacionadas
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/pythagorean-from-leg \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"leg":20}'const res = await fetch("https://api.kit.forhosting.com/numth/pythagorean-from-leg", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"leg": 20
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/pythagorean-from-leg",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"leg": 20
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/pythagorean-from-leg", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"leg":20}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"leg":20}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/pythagorean-from-leg", 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
{
"leg": 20
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.pythagorean_from_leg",
"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.
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. |
Notas técnicas
Cómo la capacidad encuentra cada terna compatible
Usted envía un cuerpo JSON con un único campo obligatorio leg, un entero positivo de al menos tres y como máximo un millón. Los resultados se ordenan por el otro cateto ascendente y luego por la hipotenusa, de forma que peticiones idénticas producen siempre el mismo orden JSON. Una entrada inválida — leg ausente, no entero, menor que tres o por encima del tope publicado — falla con invalid_input y nunca se cobra.
Dónde usarla y cuánto cuesta
Los usos habituales incluyen verificar respuestas de estudiantes que listan todas las completaciones enteras de a² + b² = c² para un a fijo, generar triángulos rectángulos primitivos y no primitivos para demos de geometría, sembrar pares de coordenadas enteras para gráficos o trayectorias CNC que necesitan ángulos rectos exactos, y documentar la familia completa de triángulos rectángulos en la red que comparten un lado dado. La ruta del navegador se ejecuta en local y no requiere cuenta. Use la herramienta gratuita del navegador cuando desee una lista rápida para un solo cateto, o llame a la API cuando un script, un libro de calificaciones o un trabajo de datos deba resolver muchos catetos de la misma forma cada vez. El uso de la API descuenta del saldo prepago de KIT al precio base publicado $0.002 por solicitud correcta; la validación fallida no consume saldo. Mantenga leg dentro de los límites documentados para que el recorrido de factores sobre a² sea predecible, y trate count e is_primitive como campos de primer nivel en lugar de recalcularlos en código cliente que podría desviarse de este contrato.
Casos de integración
Generadores de triángulos rectángulos de muestra
Pase catetos sucesivos por la API para construir bibliotecas de triángulos de lados enteros para demos, fichas o cuestionarios aleatorios con respuestas exactas.
Preguntas técnicas
¿Cómo listo las ternas pitagóricas que usan un cateto dado?
Envíe POST un cuerpo JSON con el campo entero leg (al menos 3). La respuesta incluye count y un array de ternas {a, b, c, is_primitive}.
¿Qué significa is_primitive en la respuesta?
Una terna es primitiva cuando gcd(a, b, c) vale 1. Las ternas escaladas como 6-8-10 tienen is_primitive false porque son múltiplos de 3-4-5.
¿Es gratuita la herramienta de ternas pitagóricas desde un cateto?
El widget del navegador es gratuito y se ejecuta en local. Las llamadas a la API usan el saldo prepago de KIT al precio base publicado $0.002; la entrada inválida no se cobra.
¿El resultado es siempre el mismo para el mismo cateto?
Sí. El algoritmo es una enumeración pura de factores sobre a² sin aleatoriedad ni marcas de tiempo, de modo que entradas idénticas producen JSON idéntico.