Contador de somas de dois quadrados
O contador de somas de dois quadrados retorna r₂(n), o número exato de pares inteiros ordenados (x, y) que satisfazem x² + y² = n.
Executar grátis
A ordem e os sinais importam; portanto, (1, 2), (2, 1), (-1, 2) e as outras variações de sinal são representações diferentes. Informe um inteiro não negativo dentro do limite publicado para receber uma contagem determinística obtida da fatoração em primos, sem enumerar cada possível par de coordenadas. O resultado pode ser usado diretamente em cálculos e verificações automatizadas.
O significado da contagem de representações ordenadas
Esta calculadora responde a uma questão precisa da teoria dos números: quantos pares de inteiros (x, y) satisfazem x² + y² = n? A palavra ordenados é fundamental. Se x e y forem diferentes, trocá-los gera outra representação. Os sinais também contam separadamente sempre que uma coordenada não for zero. Assim, um ponto geométrico em um quadrante pode corresponder a vários pontos com sinais distintos ao redor de um círculo, e todos eles entram na contagem. Os pontos sobre os eixos também são incluídos; por isso, um quadrado perfeito tem representações como (a, 0), (-a, 0), (0, a) e (0, -a). O valor especial n = 0 tem exatamente uma representação, (0, 0). O campo r_two segue a notação tradicional r₂(n). Ele traz uma contagem, e não uma lista de pares, o que mantém o resultado prático mesmo quando n possui muitas representações. A entrada precisa ser um inteiro não negativo. Valores decimais, inteiros inseguros, números negativos e valores acima do limite declarado são rejeitados, sem arredondamento ou interpretação silenciosa.
Como r₂(n) é calculado
O algoritmo fatora n e aplica o teorema clássico de contagem das somas de dois quadrados. Para n positivo, r₂(n) equivale a quatro vezes a diferença entre a quantidade de divisores congruentes a 1 módulo 4 e a quantidade dos congruentes a 3 módulo 4. Uma forma equivalente baseada na fatoração permite calcular com mais eficiência: se algum primo congruente a 3 módulo 4 ocorrer com expoente ímpar, a contagem será zero. Caso contrário, multiplica-se um mais o expoente de cada fator primo congruente a 1 módulo 4 e, por fim, multiplica-se o produto por quatro. As potências de 2 não alteram esse produto. Considere n = 65 = 5 × 13. Os dois primos são 1 módulo 4 e têm expoente um; logo, r₂(65) = 4 × 2 × 2 = 16. A implementação faz divisões inteiras determinísticas e nunca percorre uma grade de coordenadas, consulta um serviço remoto ou usa testes probabilísticos de primalidade. O máximo declarado limita a fatoração por tentativa e preserva a exatidão dos inteiros aceitos.
Como usar o resultado corretamente
Use r_two quando você precisar da contagem completa, com sinais e ordem, adotada em fórmulas aritméticas, problemas de pontos em retículas e cálculos de coeficientes de séries teta. Não interprete o valor como a quantidade de decomposições essencialmente diferentes em dois quadrados não negativos. Se você quiser somente combinações com 0 ≤ x ≤ y, considere a simetria separadamente: um par com duas coordenadas diferentes e não nulas produz oito representações ordenadas com sinais; um par sobre um eixo produz quatro; e um par com coordenadas iguais e não nulas também produz quatro. Esses tamanhos de órbita explicam por que valores positivos de r₂(n) normalmente são múltiplos de quatro. O caso zero é a exceção, pois apenas a origem serve. A capacidade retorna zero normalmente quando não existe representação, e isso não é um erro de entrada. Para automatizar, envie o inteiro no campo n e leia r_two na resposta. Cada solicitação de API custa US$ 0,002; a versão no navegador utiliza o mesmo cálculo puro. Guarde n junto de r_two para facilitar futuras conferências reproduzíveis.
Casos de uso
Conferir um exercício de teoria dos números
Verifique a contagem ordenada com sinais obtida por fatoração em primos ou por um argumento com divisores.
Contar pontos de uma retícula em um círculo
Descubra quantos pontos de coordenadas inteiras pertencem a x² + y² = n sem percorrer uma grade quadrada.
Gerar dados de sequências aritméticas
Calcule valores exatos de r₂(n) para inteiros selecionados em experimentos, testes ou coeficientes de séries teta.
Perguntas frequentes
(x, y) e (y, x) são contados separadamente?
Sim. O resultado conta pares ordenados; portanto, trocar as coordenadas cria outro par, exceto quando x é igual a y.
As coordenadas negativas entram na contagem?
Sim. Todo par de inteiros com sinais que satisfaz a equação é incluído.
Qual é o valor de r₂(0)?
O valor é 1, pois (0, 0) é o único par inteiro ordenado cujos quadrados somam zero.
Por que o resultado pode ser zero?
Um inteiro positivo não tem representação por dois quadrados quando algum primo congruente a 3 módulo 4 possui expoente ímpar na fatoração.
A calculadora retorna os pares propriamente ditos?
Não. Ela retorna somente a contagem exata r_two, usando fatoração em vez de enumerar coordenadas.
Quanto custa uma solicitação de API?
Cada solicitação custa US$ 0,002. O cálculo também está disponível no navegador.
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-count \
-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-count", {
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-count",
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-count", 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-count", 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_count",
"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.
Limites
max_n | 1000000000000 |
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. |