Verificador de Armstrong: narcisistas e soma de potências
O 153 é um número de Armstrong: tem três algarismos, e 1 + 125 + 27, os cubos de 1, 5 e 3, somam de novo 153. Digite qualquer inteiro não negativo e veja cada dígito, a sua potência e o total. 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
- 153
- Contagem de dígitos
- 3
- Dígitos
- 1, 5, 3
- Soma de potências
- 153
Um número de Armstrong —também chamado número narcisista na base dez— é um inteiro não negativo igual à soma dos seus próprios dígitos decimais, cada um elevado à potência da contagem de dígitos. Exemplos clássicos incluem cento e cinquenta e três (um ao cubo mais cinco ao cubo mais três ao cubo) e nove mil quatrocentos e setenta e quatro. Valores de um dígito de zero a nove são trivialmente de Armstrong porque cada dígito elevado à primeira potência é ele mesmo. Esta capacidade extrai os dígitos, calcula a soma potenciada com aritmética inteira pura e devolve um booleano claro mais cada termo intermediário para que alunos, professores e autores de scripts auditem a verificação sem um sistema de álgebra computacional ou biblioteca opaca.
O que é um número de Armstrong (narcisista)
Escreva um inteiro não negativo n em decimal e seja k a contagem dos seus dígitos. Eleve cada dígito à potência k, some essas potências e pergunte se o total é igual a n. Se for, n é um número de Armstrong —também conhecido como invariante digital perfeito ou número narcisista na base dez.
Com três dígitos as potências são cubos: cento e cinquenta e três funciona porque um ao cubo é um, cinco ao cubo é cento e vinte e cinco, três ao cubo é vinte e sete, e um mais cento e vinte e cinco mais vinte e sete é cento e cinquenta e três. Exemplos de quatro dígitos usam potências quartas; o famoso nove mil quatrocentos e setenta e quatro satisfaz nove à quarta mais quatro à quarta mais sete à quarta mais quatro à quarta.
Números de um dígito sempre passam porque a contagem de dígitos é um e d à primeira é d. Zero é tratado como valor de um dígito, de modo que zero à primeira é zero e o teste tem sucesso. Números como dez falham: um ao quadrado mais zero ao quadrado é um, não dez.
Esta definição é fixa e determinística: não há amostragem, aleatoriedade nem aritmética aproximada.
Casos de uso
Validadores para competições e entrevistas de programação
Afirme soluções candidatas a problemas clássicos de números de Armstrong sem reimplementar extração de dígitos e potência inteira em cada harness de linguagem.
Demos didáticas de propriedades dígito a dígito
Projete o array terms em sala para que os alunos vejam cada dígito, o expoente compartilhado, o valor potenciado e a comparação final em uma só resposta.
Perguntas frequentes
O que é um número de Armstrong?
Um inteiro não negativo igual à soma dos seus dígitos cada um elevado à potência da contagem de dígitos. Exemplo: 153 = 1³ + 5³ + 3³.
Número de Armstrong é o mesmo que número narcisista?
Na base 10, sim para esta ferramenta: ambos os nomes designam a mesma identidade de potências de dígitos. Outras bases estão fora do escopo aqui.
O verificador de números de Armstrong é gratuito?
A ferramenta do navegador é gratuita e roda localmente.
Por que todo número de um algarismo é de Armstrong?
Um número de um só algarismo tem um único dígito, então ele é elevado à primeira potência e continua igual. Por isso todos os números de 0 a 9 passam no teste.
Por que o 10 não é um número de Armstrong?
Ele tem dois algarismos, então cada dígito é elevado ao quadrado: 1 ao quadrado mais 0 ao quadrado dá 1, não 10. As potências dos dígitos precisam somar exatamente o próprio número.
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/armstrong-number \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":153}'const res = await fetch("https://api.kit.forhosting.com/numth/armstrong-number", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 153
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/armstrong-number",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 153
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/armstrong-number", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":153}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":153}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/armstrong-number", 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": 153
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.armstrong_number",
"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 | 999999999999999 |
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
O que é um número de Armstrong (narcisista)
O endpoint nunca inventa uma lista parcial de dígitos nem arredonda potências intermediárias; cada contribuição é um produto inteiro de um dígito por si mesmo k vezes.
Como chamar a API e o que retorna
Use em pipelines de lição de casa, validadores de competições de programação, sandboxes de preparação para entrevistas ou qualquer fluxo que precise de uma verificação reproduzível de números narcisistas sem instalar pacotes especializados de teoria dos números em cada máquina. Envie um corpo JSON com um único campo obrigatório n —um número inteiro no mínimo zero e no máximo novecentos e noventa e nove trilhões novecentos e noventa e nove bilhões novecentos e noventa e nove milhões novecentos e noventa e nove mil novecentos e noventa e nove (quinze noves), escolhido para que todo valor fique dentro dos inteiros seguros de JavaScript. Os aliases number e value são aceitos para o mesmo campo. Em caso de sucesso a resposta inclui n como aceito, digit_count, digits como array ordenado do mais para o menos significativo, terms como objetos cada um com digit, power e value, power_sum como o total desses valores, e is_armstrong como booleano que compara power_sum com n. Validação falha —n ausente, não inteiro, fração, valor acima do limite publicado ou qualquer número negativo— devolve invalid_input e nunca é cobrada. O preço é fixo de US$ 0,002 por requisição bem-sucedida (item unitário com preço marginal unitário zero). A mesma função pura alimenta a ferramenta gratuita do navegador e o caminho API pago, de modo que um exemplo dourado que passa localmente coincide exatamente com a aritmética de produção.
Dicas práticas, limites e buscas relacionadas
Se precisar de candidatos de multiprecisão com dezenas de dígitos, use uma pilha dedicada de inteiros grandes —esta capacidade leve de parse foi feita para checagens interativas e entradas de tamanho didático. Ao ensinar, prefira exemplos que mostrem os dois desfechos: cento e cinquenta e três e trezentos e setenta como casos verdadeiros de três dígitos, dez ou cem como casos falsos, e uma entrada negativa para demonstrar o caminho de rejeição rígida. Páginas irmãs de teoria dos números neste kit cobrem outras intenções como somas alíquotas ou exponentiação modular; esta página é especificamente para quem busca se um inteiro dado é de Armstrong ou narcisista. Mantenha n dentro da faixa de inteiros seguros publicada para que a extração de dígitos e a potência inteira permaneçam exatas no Worker e no navegador. Como terms lista cada contribuição de dígito, os alunos podem recalcular cada potência à mão e confrontar linha a linha com a API. Não trate o booleano sozinho como caixa-preta: combine-o com power_sum e digit_count ao avaliar entregas para que crédito parcial ou hipóteses erradas de contagem de dígitos sejam fáceis de diagnosticar. Tarefas falhas que devolvem invalid_input não consomem saldo pré-pago, o que mantém baratos os scripts exploratórios quando os usuários digitam valores ruins ao aprender o contrato.
Casos de integração
Lição de casa: verificar respostas de Armstrong e narcisistas
Dê um inteiro aos alunos e confira a soma de potências de dígitos e o rótulo sim/não calculados à mão contra um resultado determinístico da API ou do navegador gratuito.
Perguntas técnicas
Números de um dígito são de Armstrong?
Sim. Para 0–9 a contagem de dígitos é 1, e cada dígito à primeira potência é ele mesmo, logo is_armstrong é verdadeiro.
Quais entradas são rejeitadas?
n ausente, não inteiros, valores acima do máximo publicado e qualquer número negativo devolvem invalid_input. Essas falhas não são cobradas.