Verificador de números sociáveis e ciclos alíquotas
O verificador de números sociáveis começa com um inteiro positivo e o substitui repetidamente pela soma de seus divisores próprios.
Executar grátis
Ele registra todos os termos até a sequência chegar a zero ou repetir um valor e diferencia um ciclo que volta ao número inicial de um caminho que apenas entra em outro ciclo. O resultado inclui a sequência observada, o ciclo repetido, seu comprimento e a quantidade de iterações, permitindo que você confira ou reutilize o cálculo.
O que o verificador considera um ciclo sociável
A soma alíquota reúne todos os divisores positivos de um inteiro, exceto o próprio inteiro. Partindo de 12496, por exemplo, a operação produz outro número; quando aplicada repetidamente a cada resultado, ela finalmente retorna a 12496 após passar por diversos termos distintos. O verificador chama isso de ciclo sociável porque o valor repetido é o ponto inicial. A resposta define forms_sociable_cycle como verdadeiro, informa o estado de ciclo sociável e apresenta os membros na ordem, sem duplicar o valor de fechamento dentro da lista do ciclo. A sequência completa inclui essa repetição final para que você possa confirmar o fechamento diretamente. Nessa convenção, um número perfeito aparece como um ciclo de comprimento um, enquanto um par amigável forma um ciclo de comprimento dois. Ciclos maiores seguem exatamente a mesma regra. Essa abordagem mantém visíveis os casos especiais matematicamente relacionados e permite que cada aplicação filtre apenas ciclos de comprimento três ou superior, quando necessário. A contagem de passos representa transformações alíquotas, e não a quantidade de valores distintos armazenados.
Como a terminação e outros ciclos são informados
Nem todo valor inicial pertence a um ciclo sociável. Quando a iteração chega a 1, sua próxima soma alíquota é 0, pois 1 não possui divisores próprios positivos. O verificador então retorna um estado de término, um resultado falso e zero como valor terminal. Outra trajetória pode se juntar a um ciclo cujo primeiro membro não é o número solicitado. Nesse caso, a resposta informa que o caminho entrou em outro ciclo, identifica o índice em que ele começa e devolve somente a parte periódica no campo de ciclo. Essa distinção é importante ao estudar a dinâmica alíquota: encontrar um valor repetido comprova a periodicidade eventual do caminho observado, mas não prova que o inteiro inicial faça parte desse período. A lista da sequência preserva todo o percurso, desde o valor fornecido até a repetição de fechamento, para que você possa criar gráficos, auditar ou comparar o resultado com uma implementação independente da soma de divisores. Campos que não se aplicam a um caminho terminado são omitidos, em vez de receberem valores nulos.
Limites seguros, cálculo determinístico e uso da API
Sequências alíquotas podem crescer rapidamente, e fatorar termos cada vez maiores pode exigir muito mais trabalho do que um cálculo curto no navegador ou na borda deve aceitar. Por isso, esta capacidade aplica o limite seguro de 1,000,000,000 por termo e o máximo de 1,000 transformações. O valor inicial já precisa respeitar o limite dos termos. Se qualquer soma alíquota calculada ultrapassá-lo, a solicitação falha com um erro de entrada inválida que menciona o termo de origem e o limite; nunca é fornecido um resultado parcial que possa parecer uma conclusão matemática. Uma sequência que não termine nem se repita dentro do limite de passos também falha de forma explícita. Dentro desses limites, o algoritmo é determinístico: ele enumera pares de divisores até a raiz quadrada de cada termo, conta uma raiz exata somente uma vez e não usa rede, relógio, aleatoriedade nem estado armazenado. Envie o campo obrigatório start como inteiro positivo. A mesma entrada sempre produz o mesmo JSON, tanto na ferramenta do navegador quanto na automação pela API, por US$ 0,002 a cada solicitação.
Casos de uso
Explorar um número sociável conhecido
Confirme o ciclo completo, seu comprimento e a transição alíquota exata que realiza o fechamento.
Classificar uma trajetória alíquota
Diferencie a terminação em zero, a participação no ciclo inicial e a entrada em outro ciclo repetido.
Validar código de teoria dos números
Compare uma sequência determinística e seu limite cíclico com outra implementação de divisores próprios.
Perguntas frequentes
O que é uma soma alíquota?
É a soma de todos os divisores positivos de um número, exceto o próprio número. Para 6, os divisores próprios 1, 2 e 3 somam 6.
Números perfeitos e pares amigáveis são considerados?
Sim. O verificador trata um número perfeito como ciclo de comprimento um e um par amigável como ciclo de comprimento dois.
Por que a sequência repete o último valor?
O valor repetido no final mostra claramente onde o caminho se fecha. A lista separada do ciclo inclui cada membro apenas uma vez.
O que ocorre quando um termo gerado é grande demais?
A solicitação retorna um erro de entrada inválida assim que o termo ultrapassa o limite seguro, sem exibir uma classificação incompleta.
Quanto custa uma verificação pela API?
Cada solicitação de API custa US$ 0,002. A versão no navegador usa o mesmo cálculo determinístico.
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/sociable-numbers \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"start":12496}'const res = await fetch("https://api.kit.forhosting.com/numth/sociable-numbers", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"start": 12496
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/sociable-numbers",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"start": 12496
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/sociable-numbers", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"start":12496}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"start":12496}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/sociable-numbers", 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
{
"start": 12496
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.sociable_numbers",
"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_term | 1000000000 |
max_steps | 1000 |
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. |