Verificador soma de dois quadrados
O 65 é soma de dois quadrados, 1² + 8², enquanto o 3 e o 7 nunca são. Digite um inteiro e receba um sim ou não, um par válido e os fatores primos usados pela regra de Fermat. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Um inteiro não negativo é soma de dois quadrados inteiros quando existem inteiros a e b tais que n é igual a a ao quadrado mais b ao quadrado. Zero é 0² + 0², cinco é 1² + 2², treze é 2² + 3² e sessenta e cinco é 1² + 8² (ou 4² + 7²); três e sete não podem ser escritos assim. O teorema clássico de Fermat decide a pertinência só com a fatoração prima: n funciona se e somente se todo primo congruente a três módulo quatro aparece com expoente par. A aritmética é totalmente determinística — sem rede, sem aleatoriedade e sem relógio —, de modo que deveres, oráculos de concurso e pipelines de produção sempre concordam.
O que significa «soma de dois quadrados» e como Fermat decide
Os inteiros a e b formam uma representação de n quando a ao quadrado mais b ao quadrado é igual a n. Sinais e ordem não mudam a identidade subjacente: se (a, b) funciona, também funcionam (±a, ±b) e (±b, ±a), assim este verificador reporta um par não negativo com a menor ou igual a b quando existe representação. Zero e um têm sucesso de imediato (0²+0² e 0²+1²).
Dois é 1²+1²; todo primo congruente a um módulo quatro é ele mesmo soma de dois quadrados; primos congruentes a três módulo quatro nunca o são. O teorema completo multiplica esses fatos: escreva n como produto de potências primas; se algum primo p ≡ 3 (mod 4) tem expoente ímpar, n fica bloqueado e não pode ser soma de dois quadrados; se todo tal primo tem expoente par (incluindo o caso vazio quando nenhum aparece), n pode.
De forma equivalente, após remover todos os fatores quadrados e os de dois e de primos ≡ 1 mod 4, nada da forma 4k+3 pode restar com potência ímpar.
Onde encaixam as verificações de soma de dois quadrados
Estudantes encontram somas de dois quadrados ao aprender aritmética modular, resíduos quadráticos e teoria algébrica dos números inicial: os primos de obstrução ≡ 3 mod 4 são uma primeira ponte entre fatoração e representação diofantina. Professores podem gerar gabaritos para folhas que perguntem se cinco, treze, vinte e cinco ou sessenta e cinco é soma de dois quadrados, e contrastá-los com três, sete ou onze sem confiar em calculadoras opacas.
Prática de concursos e write-ups de CTF costumam precisar de um oráculo rápido offline para «n pode ser escrito como a²+b²?» e verificar soluções sem fatias de OEIS codificadas à mão. Autores de bibliotecas usam o mesmo contrato para testes de propriedades de ajudas de fatoração e normas de inteiros gaussianos.
Mantenha n dentro do limite publicado para que a divisão de tentativa e a busca opcional de representação sigam interativas; para inteiros de tamanho criptográfico você precisa de fatoração multiprecisão, não desta capacidade parse leve.
Casos de uso
Verificações de dois quadrados em concursos e CTF
Verifique com rapidez a pertinência a soma de dois quadrados ao resolver problemas de programação ou capture-the-flag sem tabelas estáticas de inteiros representáveis.
Perguntas frequentes
Quando n é soma de dois quadrados?
Um inteiro não negativo n é igual a a² + b² para inteiros a e b se e somente se todo primo congruente a 3 módulo 4 tem expoente par na fatoração prima de n. Zero, um, dois, cinco, treze e sessenta e cinco têm sucesso; três e sete falham.
O que acontece se n for negativo?
O teorema clássico de soma de dois quadrados é enunciado para inteiros não negativos; n negativo está fora do domínio e não é cobrado.
Quanto custa o verificador de soma de dois quadrados?
A ferramenta do navegador é gratuita e roda localmente.
O algoritmo é aleatório?
Não. Usa fatoração determinística por divisão de tentativa, checagens exatas de paridade em primos ≡ 3 mod 4 e busca exata de uma representação a ≤ b quando a pertinência vale. O mesmo n sempre produz o mesmo indicador e os mesmos factors.
O 65 é soma de dois quadrados?
Sim: 65 é 1² + 8², e também 4² + 7². Seus fatores primos são 5 e 13, e ambos deixam resto 1 na divisão por 4, então nada impede a representação.
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/sum-two-squares-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":65}'const res = await fetch("https://api.kit.forhosting.com/numth/sum-two-squares-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 65
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/sum-two-squares-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 65
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/sum-two-squares-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":65}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":65}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/sum-two-squares-check", 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
{
"n": 65
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.sum_two_squares_check",
"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
Esta capacidade fatora n, lista quaisquer primos bloqueantes da forma 4k+3 com multiplicidade ímpar, devolve um indicador is_sum_of_two_squares claro e, quando a resposta é sim, fornece uma representação não negativa a ≤ b. Explore grátis no navegador ou chame a API a US$ 0,002 por pedido bem-sucedido quando scripts precisam de um veredito reproduzível de sim ou não sem um sistema de álgebra computacional.
O que significa «soma de dois quadrados» e como Fermat decide
Esta ferramenta nunca amostra nem aproxima: fatora n uma vez por divisão de tentativa, examina cada potência prima pela condição 4k+3 de expoente ímpar, preenche blocking_primes quando a resposta é não e só então busca um par concreto a²+b² quando o critério diz sim, de modo que a pertinência de livro e o booleano sempre coincidem.
Contrato de entrada, forma da resposta e erros
Um n negativo está explicitamente fora do domínio: o enunciado clássico é para inteiros não negativos, e a capacidade sinaliza isso com mensagem clara em vez de inventar um sucesso falso. Envie um corpo JSON com um único campo obrigatório n: um número inteiro de pelo menos zero e no máximo um trilhão (dez à décima segunda). Os alias number e value são aceitos para o mesmo campo, de modo que formulários e cadeias de consulta reutilizem um único contrato. Em caso de sucesso a resposta inclui n aceito, is_sum_of_two_squares como booleano, factors como lista ordenada de objetos com prime e exponent (vazia para zero e um), blocking_primes como lista ascendente de primos ≡ 3 mod 4 com expoente ímpar, criterion como reescrita breve da regra de Fermat e, quando o booleano é verdadeiro, um objeto representation com inteiros não negativos a e b tais que a² + b² é igual a n e a ≤ b. Validação falha — n ausente, não inteiro, fração, valor negativo ou acima do limite publicado — devolve invalid_input e nunca é cobrada. O preço é um valor fixo US$ 0,002 por pedido bem-sucedido (unidade item com preço unitário marginal zero). Inteiros que falham o critério ainda devolvem resposta bem-sucedida com is_sum_of_two_squares false e lista blocking_primes não vazia; só violações de domínio são erros, o que simplifica scripts de correção quando alunos enviam três, sete ou vinte e um.
Onde encaixam as verificações de soma de dois quadrados
Nesta página o trabalho roda inteiramente no seu navegador; pela API cada consulta bem-sucedida custa US$ 0,002, validação falha não é cobrada e nada é armazenado após a resposta. Landings irmãs de soma dos primeiros n quadrados ou números felizes (somas de quadrados de dígitos) atendem intenções de busca diferentes — esta página mira quem especificamente quer o teste de pertinência de dois quadrados de Fermat e um indicador is_sum_of_two_squares claro.
Casos de integração
Deveres: n pode ser escrito como a² + b²?
Dê aos alunos um inteiro e confira a fatoração manual e a pertinência sim/não frente a uma API determinística ou ao resultado gratuito do navegador com os primos bloqueantes listados.
Ensinar o critério 4k+3 de Fermat
Mostre que primos ≡ 1 mod 4 e produtos como 65 têm sucesso enquanto falham primos ≡ 3 mod 4 com expoente ímpar (3, 7, 11, 21), com factors e blocking_primes para o quadro.
Perguntas técnicas
Uma resposta falsa ainda devolve factors?
Sim. Inteiros não representáveis têm sucesso com is_sum_of_two_squares false, a lista completa de factors e blocking_primes nomeando cada primo ≡ 3 mod 4 com expoente ímpar. Só violações de domínio são erros.