Gerador de ternas pitagóricas
Constrói uma terna pitagórica a partir de dois inteiros m maior que n com a fórmula de Euclides: os valores 2 e 1 dão o triângulo 3-4-5. Também mostra se a terna é primitiva e confere que a² + b² = c². Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- M
- 2
- N
- 1
- A
- 3
- B
- 4
- C
- 5
- Tripla
- 3, 4, 5
Toda solução inteira de a ao quadrado mais b ao quadrado igual a c ao quadrado pode ser construída a partir de um par de inteiros positivos m maior que n pela parametrização clássica de Euclides. Professores, programadores de competições e autores de material didático precisam dessas ternas sob demanda, sem multiplicar quadrados à mão nem confundir qual cateto é par. Este gerador de ternas pitagóricas aceita m e n, rejeita valores não positivos e qualquer par em que m não seja estritamente maior que n, e devolve a terna a igual a m ao quadrado menos n ao quadrado, b igual a dois vezes m n, e c igual a m ao quadrado mais n ao quadrado, junto com um indicador de primitividade e uma verificação.
A fórmula de Euclides e o significado de m e n
A fórmula de Euclides é o gerador construtivo padrão de ternas pitagóricas na teoria elementar dos números. Dados inteiros m e n com m estritamente maior que n e ambos positivos, defina a como m ao quadrado menos n ao quadrado, b como o dobro do produto m vezes n, e c como m ao quadrado mais n ao quadrado.
Uma expansão curta mostra que a ao quadrado mais b ao quadrado é identicamente igual a c ao quadrado, de modo que todo par válido produz uma terna genuína de triângulo retângulo com lados inteiros. A semente clássica de sala de aula é m igual a dois e n igual a um, que produz o familiar triângulo três-quatro-cinco: a igual a três, b igual a quatro e c igual a cinco.
Elevando m a três com n igual a dois obtém-se cinco-doze-treze; m igual a quatro e n igual a um produz quinze-oito-dezessete. Quando m e n são coprimos e de paridade oposta — um par e outro ímpar — a terna resultante é primitiva: os três lados não compartilham divisor comum maior que um.
Se m e n compartilham um fator, ou ambos são ímpares, a terna continua válida, porém escalada: por exemplo m igual a três e n igual a um, ambos ímpares, produz oito-seis-dez, que é o dobro de três-quatro-cinco. Esta capacidade sempre devolve a terna bruta de Euclides para os parâmetros que você informar; ela não reescala, não troca catetos nem busca um gerador a partir de uma hipotenusa alvo.
Você escolhe m e n; o serviço multiplica a, b e c e informa se essa terna é primitiva pelo critério padrão.
Contrato de entrada, campos de resposta e erros
Ambos os parâmetros devem ser estritamente maiores que zero; zero ou negativos são rejeitados porque a fórmula de Euclides é enunciada para geradores positivos. Além disso m deve ser estritamente maior que n: se m for igual a n, a colapsa a zero e a figura não é um triângulo; se m for menor que n, a forma ordenada usual da fórmula é violada.
Em caso de sucesso o corpo ecoa m e n, devolve lados inteiros a, b e c, inclui um array triple na ordem [a, b, c], um booleano primitive, um check booleano de que a ao quadrado mais b ao quadrado é igual a c ao quadrado quando esses quadrados cabem no intervalo de inteiros seguros, e uma string formula reafirmando as identidades. Validação falha não é cobrada.
Exemplo: m igual a dois e n igual a um produz a igual a três, b igual a quatro, c igual a cinco, primitive true. Exemplo: m igual a seis e n igual a três produz a igual a vinte e sete, b igual a trinta e seis, c igual a quarenta e cinco, primitive false porque os geradores compartilham um fator três.
Onde um gerador de ternas pitagóricas se justifica
Salas de aula e plataformas de tutoria usam um gerador de ternas pitagóricas para que alunos explorem famílias de triângulos retângulos sem erros aritméticos em quadrados e produtos. Treinadores de olimpíadas e competições semeiam problemas com ternas primitivas e precisam de um oráculo determinístico que marque pares geradores inválidos em vez de devolver em silêncio uma terna degenerada com cateto nulo. Geradores de currículo podem percorrer m e n em laços aninhados, pular pares não primitivos quando desejado e coletar listas de hipotenusas para folhas de exercícios.
Entrada inválida não consome saldo. Mantenha m e n modestos para faixas escolares, fixe os arrays de terna esperados nos testes e obtenha lados inteiros reproduzíveis para lições, plugins LMS e edge workers sem montar um sistema de álgebra computacional próprio.
Casos de uso
Exploração em sala de triângulos retângulos
Deixe os alunos escolherem m e n, verem a, b e c na hora e descobrirem quando a terna é primitiva versus um múltiplo escalado de uma menor.
Semeadura de problemas de competição
Gere famílias de triângulos retângulos de lados inteiros para olimpíadas e contestações de programação com um oráculo de Euclides determinístico.
Ferramentas de jogo e currículo
Produza comprimentos inteiros de catetos e hipotenusa para mapas de tiles, design de caminhos ou folhas auto-geradas sem tabelas de ternas mantidas à mão.
Perguntas frequentes
Como funciona o gerador de ternas pitagóricas?
Envie inteiros positivos m e n com m > n.
O que acontece se m não for maior que n?
A fórmula de Euclides exige m > n > 0; parâmetros iguais ou invertidos são rejeitados e não cobrados.
Quando a terna é primitiva?
Quando gcd(m, n) = 1 e m e n têm paridade oposta (um par e outro ímpar). Caso contrário a, b e c ainda formam uma terna válida, mas compartilham um fator comum.
Quais m e n dão o triângulo 5-12-13?
Use 3 para m e 2 para n. Assim m² − n² é 5, 2mn é 12 e m² + n² é 13, e como 3 e 2 não têm fator comum e um deles é par, a terna é primitiva.
Por que 3 e 1 dão a terna 8-6-10?
Os dois números são ímpares, então a fórmula gera uma terna ampliada: 8-6-10 é 3-4-5 multiplicada por dois. Continua sendo um triângulo retângulo válido, mas não é marcada como primitiva.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/numth/pythagorean-triple-generator \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"m":2,"n":1}'const res = await fetch("https://api.kit.forhosting.com/numth/pythagorean-triple-generator", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"m": 2,
"n": 1
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/pythagorean-triple-generator",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"m": 2,
"n": 1
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/pythagorean-triple-generator", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"m":2,"n":1}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"m":2,"n":1}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/pythagorean-triple-generator", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"m": 2,
"n": 1
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.pythagorean_triple_generator",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Contrato de entrada, campos de resposta e erros
Envie por POST um objeto JSON com dois inteiros positivos obrigatórios: m e n. Cada campo pode chegar como número JSON ou como string só de dígitos; strings vazias, campos ausentes, não inteiros e valores não finitos falham com invalid_input nomeando o campo. Limites de inteiros seguros se aplicam: m não pode ser tão grande que m ao quadrado saia do intervalo exato IEEE-754, e a, b e c calculados devem permanecer inteiros seguros. Combine o JSON com seu próprio código de diagrama se precisar de um triângulo retângulo plotado; este endpoint emite apenas a terna numérica e metadados.
Onde um gerador de ternas pitagóricas se justifica
Autores de jogos e gráficos às vezes precisam de triângulos retângulos de lados inteiros para dimensões de tiles, comprimentos de caminho ou restrições de level design; chamar uma pequena API de parse evita embutir tabelas ad hoc. Como a implementação é parse puro tier A, cada chamada bem-sucedida custa o preço base publicado US$ 0,002 sem tokens de modelo e sem rede de saída.
Perguntas técnicas
O três-quatro-cinco está incluído?
Sim. Use m = 2 e n = 1 para obter a = 3, b = 4, c = 5 com primitive true — a terna pitagórica primitiva fundamental.
Quanto custa o gerador de ternas pitagóricas?
A ferramenta no navegador é gratuita. Solicitações API usam saldo pré-pago KIT a US$ 0,002 por chamada bem-sucedida; entrada inválida não é cobrada.