Um número Armstrong é um conceito-chave no campo de criptografia e descriptografia para segurança de dados.
O conceito geral de processamento dos dígitos de um número é uma técnica fundamental. Você pode resolver muitas tarefas com essa abordagem, como somar dígitos, obter o produto de dígitos, contar dígitos e inverter um número.
Mas o que é um número de Armstrong e como você testa um?
O que é um número de Armstrong?
Um número de Armstrong é um número cuja soma dos cubos de seus dígitos é igual ao próprio número. Por exemplo, 153 é um número de Armstrong. Se você pegar os dígitos de 153 individualmente e cubrá-los:
(1 × 1 × 1) + (5 × 5 × 5) + (3 × 3 × 3)
Em seguida, adicione os resultados:
1 + 125 + 27
Você obterá 153, o mesmo que o número original.
Um algoritmo para encontrar um número de Armstrong
Escrever um algoritmo é o primeiro passo para implementar qualquer programa. Você pode usar o algoritmo como referência para escrever pseudocódigo e implementá-lo usando a linguagem de programação desejada. Um algoritmo fornece a série exata de instruções a seguir, eliminando erros de lógica e simplificando a implementação.
Aqui está o algoritmo para descobrir se um número é Armstrong ou não:
- Declarar variáveis sum, temp, n, r
- Pegue o valor de n do usuário
- Inicialize a soma da variável como 0 e faça backup de n como temp = n
- Repita as etapas 5 a 7 enquanto n > 0
- r = n% 10
- soma = soma + cubo de cada dígito (r × r × r)
- n = n / 10
- Se soma for igual a temp, exibe "Número é um número de Armstrong"
- Caso contrário, exiba "O número não é um número de Armstrong"
Pseudocódigo para implementar o algoritmo de Armstrong
O pseudocódigo pode ser uma etapa útil no projeto da implementação de um algoritmo. Escrever o pseudocódigo ajuda a convertê-lo facilmente em código em qualquer linguagem de programação. Aqui está o pseudocódigo para a implementação do número de Armstrong:
O Programa Armstrong em C
Observe o pseudocódigo acima e converta cada instrução em código C.
Comece importando stdio.h para executar as operações de entrada e saída. Declare o principal função e começar a implementar a lógica do programa. Usar n para armazenar o número de entrada, r para armazenar os dígitos individuais do número, soma para armazenar a soma dos cubos dos dígitos, e temperatura para armazenar uma cópia do número.
Use o printf função para solicitar ao usuário que insira um número. Use o scanf função para ler o número e armazená-lo na variável n. %d é o especificador de formato decimal para receber um número inteiro como entrada.
Limpe qualquer valor de lixo inicializando a soma como zero e faça um backup de n como temp.
#incluir <stdio.h>
intprincipal()
{
int n, r, soma, temp;
printf("Por favor, coloque um numero: ");
scanf("%d", &n);
soma = 0; temperatura = n;
Declare um enquanto loop que é executado até que o número seja zero ou menos. Dentro do loop há um processo de três etapas que você pode usar em várias outras tarefas de programação. As três etapas são:
- Obtenha o dígito individual do número tomando o módulo do número com 10. Quando você divide qualquer número com 10 como um todo, o resto é o próprio último dígito. Por exemplo, quando você divide 153 por 10, o resultado inteiro é 15 e o módulo é 3.
- Quando você tiver o dígito individual, poderá realizar a operação desejada. Para encontrar um número de Armstrong, a operação desejada é a soma dos cubos dos dígitos do número. Pegue o cubo do dígito r e adicione-o à variável soma.
- Elimine o último dígito do número dividindo-o por 10. Na divisão por 10, obtém-se o quociente, neste caso, 15.
enquanto (n > 0) {
r = n % 10;
soma = soma + (r * r * r);
n = n/10;
}
Verifique se a soma obtida é igual ao número original. Se forem iguais, o número é de fato um número de Armstrong, caso contrário, não é.
if (temperatura == soma)
printf("O número é um número de Armstrong\n");
outro
printf("O número não é um número de Armstrong\n");
retornar0;
}
Outras Aplicações do Algoritmo Geral
Ao alterar a segunda etapa da lógica de três etapas vista acima, você pode implementar uma variedade de programas.
1. Soma, produto dos dígitos do número
Para obter a soma dos dígitos de um número, basta substituir a linha por:
soma = soma + r;
Para o produto, declare a variável prod como 1 e substitua a soma da adição por um símbolo de multiplicação:
produto = produto * r;
2. Contagem de dígitos do número
Para contar os dígitos de um número, simplesmente inicialize uma variável count como zero, omita a etapa um e a incremente até que n seja igual a zero. A implementação do loop ficará assim:
enquanto (n > 0) {
contar++;
n = n/10;
}
3. Reverso do número, número palíndromo
Para inverter um número, inicialize uma variável rev para um e adicione-a após multiplicar por dez:
rev = (rev * 10) + r;
Depois de obter o reverso de um número, compare-o com a cópia do próprio número original. Se o número reverso for igual ao próprio número, é um número palíndromo.
4. O menor e o maior dígito de um número
Inicialize uma variável min como nove e compare-a com o dígito extraído da etapa um para encontrar o menor dígito de um número. Você pode implementá-lo como:
se (r < min) {
min = r;
}
Da mesma forma, inicialize uma variável max com zero e compare-a com o dígito extraído para encontrar o maior dígito de um número. Você pode implementá-lo como:
se (r > máximo) {
máx = r;
}
É assim que você pode encontrar o maior e o menor algarismo de um número.
5. números especiais
Existem muitos outros números, como um número de Armstrong, que você pode calcular. Estes incluem o número Neon, o número Automórfico, o número Krishnamurthy, o número Buzz, o número Perfeito, o número Amigável e o número primo Gêmeo.
Programação e Matemática
A matemática é amplamente utilizada na programação. A matemática binária é o núcleo da programação, pois todo o software que você usa hoje é uma combinação dos dígitos zero e um. Todos os dados com os quais você trabalha são armazenados em formato binário. A álgebra linear é usada em aplicativos de aprendizado de máquina, algoritmos de grafos, computação quântica e muito mais.
Cálculo, matemática discreta e estatística são amplamente usados na solução de problemas e no projeto de algoritmos. A matemática aprimora sua habilidade computacional e é uma parte essencial da programação.