Geradores de digitadição
O 101 tem dois geradores, 91 e 100, porque 91 + 10 e 100 + 1 dão 101. Digite um inteiro positivo para ver todos os geradores em ordem crescente, ou saber que ele é um número próprio. 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
- N
- 101
- Geradores
- 91, 100
- Quantidade
- 2
Digitadição é o nome que D. R. Kaprekar deu a somar um inteiro positivo com a soma dos seus próprios dígitos decimais. Um gerador de n é qualquer inteiro m que satisfaz m mais a soma dos dígitos de m igual a n; números sem nenhum m assim são números auto ou self numbers. Estudantes, programadores de competições e autores de currículo costumam precisar da lista completa de geradores para um n dado, não só de um indicador sim ou não de número auto.
O que são geradores de digitadição e por que a busca é curta
Escreva s(m) para a soma dos dígitos decimais de um inteiro não negativo m. A digitadição mapeia m para m mais s(m). Um gerador de um inteiro positivo n é qualquer m tal que m mais s(m) iguala n.
Reorganizando, m iguala n menos s(m), logo todo gerador é estritamente menor que n porque a soma de dígitos de um m positivo é pelo menos um, e m igual a zero só produz zero. A soma de dígitos não pode crescer mais rápido do que nove vezes o número de dígitos: para qualquer m menor que n, s(m) é no máximo nove vezes a contagem de dígitos de n.
Portanto todo gerador está no intervalo inteiro fechado desde o máximo entre zero e n menos nove vezes os dígitos de n, até n menos um. Verificar essa janela basta; não é preciso escanear de zero a n em alvos grandes.
Exemplos clássicos: n igual a vinte e um tem o único gerador quinze porque quinze mais seis iguala vinte e um; n igual a cento e um tem geradores noventa e um e cem porque noventa e um mais dez iguala cento e um e cem mais um iguala cento e um; n igual a vinte tem lista vazia e por isso é um número auto.
Para que serve conhecer os geradores
Salas de aula e plataformas de tutoria usam uma ferramenta de geradores de digitadição para que alunos explorem os números auto de Kaprekar sem checar à mão cada candidato abaixo de n. Treinadores de olimpíadas e competições de programação precisam de um oráculo determinístico que marque números auto quando a lista de geradores está vazia e que nunca invente um gerador fora da janela comprovada. Geradores de currículo percorrem faixas de n, coletam números auto e montam planilhas que pedem listar todos os geradores de alvos selecionados.
Entrada inválida não consome saldo.
Casos de uso
Checagens de número auto na sala de aula
Permita que alunos enviem n e vejam cada gerador m com m mais soma de dígitos igual a n, ou confirmem que n é número auto quando a lista está vazia.
Correção automática em competições e LMS
Avalie problemas de digitadição e números auto com um oráculo determinístico que devolve a lista ordenada completa de geradores, não só um indicador booleano.
Lotes de currículo e pesquisa
Percorra faixas de n a partir de scripts, colete contagens e indicadores de número auto e monte tabelas ou planilhas sem reimplementar a janela de varredura.
Perguntas frequentes
O que é um gerador de digitadição?
Um gerador de n é um inteiro m tal que m mais a soma dos dígitos decimais de m iguala n. Exemplo: 15 gera 21 porque 15 + 1 + 5 = 21.
O que é um número auto (self number)?
Um número auto é um inteiro positivo sem geradores.
Por que n deve ser pelo menos 1?
Geradores de digitadição são definidos para alvos inteiros positivos.
Quantos geradores n pode ter?
Em geral zero, um ou poucos. A janela de varredura tem cerca de 9 vezes a contagem de dígitos de n, então a lista permanece pequena mesmo para inteiros seguros grandes.
Quanto custa?
A ferramenta do navegador é gratuita e roda localmente.
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/digitadition-generators \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":101}'const res = await fetch("https://api.kit.forhosting.com/numth/digitadition-generators", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 101
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/digitadition-generators",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 101
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/digitadition-generators", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":101}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":101}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/digitadition-generators", 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": 101
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.digitadition_generators",
"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 aceita um inteiro positivo n, percorre a janela curta e comprovada de candidatos perto de n e devolve cada gerador em ordem crescente junto com uma contagem e o indicador is_self_number.
O que são geradores de digitadição e por que a busca é curta
O algoritmo é totalmente determinístico: o mesmo n produz sempre o mesmo array ordenado de generators, o mesmo count e o mesmo booleano is_self_number, sem aleatoriedade, sem rede e sem dependência de relógio.
Contrato de entrada, forma da resposta e comportamento de erro
A mensagem para alvos abaixo de um declara que n deve ser pelo menos um, alinhada ao domínio matemático de metas positivas de digitadição. Validação falha não é cobrada. Envie por POST um objeto JSON com um campo inteiro positivo obrigatório n. Os aliases number, value e target são aceitos com o mesmo significado. O valor pode chegar como número JSON ou como string só de dígitos com sinal opcional; strings vazias, campos ausentes, não inteiros, valores não finitos e qualquer n estritamente menor que um falham com invalid_input. Em sucesso o corpo ecoa o n normalizado, devolve generators como array crescente de inteiros, count como o comprimento desse array, is_self_number como verdadeiro exatamente quando o array está vazio, e uma string formula curta reafirmando m mais digit_sum de m igual a n. Limites de inteiro seguro se aplicam: n não deve exceder o máximo inteiro seguro de JavaScript para que cada extração de dígito permaneça exata em doubles IEEE-754. Verificações de exemplo que você pode fixar em testes: n igual a cento e um produz geradores noventa e um e cem com count dois e is_self_number falso; n igual a vinte e um produz generators contendo só quinze; n igual a vinte produz array vazio, count zero e is_self_number verdadeiro; n igual a um também é número auto. Combine o JSON com sua própria prosa de planilha se precisar de expansões de dígitos passo a passo; este endpoint só emite a lista de geradores e metadados.
Onde uma API de geradores de digitadição agrega valor
Cadernos de pesquisa que estudam a densidade de números auto podem chamar a API em lote e guardar o campo count sem reimplementar laços de soma de dígitos em cada linguagem.