Programa Java para Identificar Números de Armstrong Usando Loop For
O que é um Número de Armstrong?
Um número de Armstrong (também conhecido como número narcisista) é um número que é igual à soma de seus próprios dígitos, cada um elevado à potência do número total de dígitos.
Matematicamente, para um número com dígitos x, y, … z e n dígitos, o seguinte se mantém:
xy…z = xn + yn + … + zn
Exemplos de números de Armstrong incluem:
0, 1, 4, 5, 9, 153, 371, 407, 8208, …
Programa Java para Verificar se um Número é de Armstrong
Abaixo está uma implementação Java compacta que verifica se um dado inteiro é um número de Armstrong. O algoritmo itera sobre cada dígito, acumula o cubo do dígito (já que estamos focando em números de três dígitos), e compara a soma com o número original.
// Verificar se um número é de Armstrong usando loop while
package com.guru99;
public class ArmstrongNumber {
public static void main(String[] args) {
int inputArmstrongNumber = 153; // Número para testar
int tempNumber, digit, digitCubeSum = 0;
tempNumber = inputArmstrongNumber;
while (tempNumber != 0) {
System.out.println("Número atual é " + tempNumber);
digit = tempNumber % 10;
System.out.println("Dígito atual é " + digit);
digitCubeSum += digit * digit * digit;
System.out.println("Soma dos cubos atual é " + digitCubeSum);
tempNumber /= 10;
}
if (digitCubeSum == inputArmstrongNumber)
System.out.println(inputArmstrongNumber + " é um Número de Armstrong");
else
System.out.println(inputArmstrongNumber + " não é um Número de Armstrong");
}
}
Saída
Número atual é 153 Dígito atual é 3 Soma dos cubos atual é 27 Número atual é 15 Dígito atual é 5 Soma dos cubos atual é 152 Número atual é 1 Dígito atual é 1 Soma dos cubos atual é 153 153 é um Número de Armstrong
Programa Java para Listar Todos os Números de Armstrong de 0 a 999
O programa a seguir demonstra como enumerar todo número de Armstrong no intervalo 0-999. Ele usa um loop for para o intervalo e um loop while para processar cada candidato.
// Enumerar números de Armstrong entre 0 e 999
package com.guru99;
public class ArmstrongNumber {
public static void main(String[] args) {
for (int inputArmstrongNumber = 0; inputArmstrongNumber < 1000; inputArmstrongNumber++) {
int tempNumber = inputArmstrongNumber;
int digitCubeSum = 0;
while (tempNumber != 0) {
int digit = tempNumber % 10;
digitCubeSum += digit * digit * digit;
tempNumber /= 10;
}
if (digitCubeSum == inputArmstrongNumber)
System.out.println(inputArmstrongNumber + " é um Número de Armstrong");
}
}
}
Saída
0 é um Número de Armstrong 1 é um Número de Armstrong 153 é um Número de Armstrong 370 é um Número de Armstrong 371 é um Número de Armstrong 407 é um Número de Armstrong
Java
- Java Hello World: Seu Primeiro Programa
- Dominando o Loop for Aprimorado em Java: Sintaxe, Exemplos e Boas Práticas
- Sobrecarga de Construtores em Java – Explicado com Exemplos Práticos de Código
- Programa Java para Determinar se um Número é Primo
- Programa Java para Listar Números Primos de 1 a 100 – Guia Passo a Passo
- Gerar Sequência de Fibonacci em Java: Exemplos com For, While e Recursão
- Inverter String em Java Usando Recursão – Guia Passo a Passo
- Verificador de Número Palíndromo em Java: Algoritmos com While e For Loops
- Algoritmo Insertion Sort em Java: Exemplo Claro e Guia Passo a Passo
- Selection Sort em Java: Exemplo Passo a Passo e Código Completo