Example 1: Check Armstrong Number for 3 digit number
public class Armstrong {
public static void main(String[] args) {
int number = 371, originalNumber, remainder, result = 0;
originalNumber = number;
while (originalNumber != 0)
{
remainder = originalNumber % 10;
result += Math.pow(remainder, 3);
originalNumber /= 10;
}
if(result == number)
System.out.println(number + " is an Armstrong number.");
else
System.out.println(number + " is not an Armstrong number.");
}
}
Output
371 is an Armstrong number.
First, given number ( number )'s value is stored in another integer variable,
originalNumber . This is because, we need to compare the values of final number and
original number at the end.
Then, a while loop is used to loop through originalNumber until it is equal to 0.
On each iteration, the last digit of num is stored in remainder .
Then, remainder is powered by 3 (number of digits) using Math.pow() function and
added to result .
Then, the last digit is removed from originalNumber after division by 10.
Finally, result and number are compared. If equal, it is an Armstrong number. If not, it
isn't.
Example 2: Check Armstrong number for n digits
public class Armstrong {
public static void main(String[] args) {
int number = 1634, originalNumber, remainder, result = 0, n = 0;
originalNumber = number;
for (;originalNumber != 0; originalNumber /= 10, ++n);
originalNumber = number;
for (;originalNumber != 0; originalNumber /= 10)
{
remainder = originalNumber % 10;
result += Math.pow(remainder, n);
}
if(result == number)
System.out.println(number + " is an Armstrong number.");
else
System.out.println(number + " is not an Armstrong number.");
}
}
Output
1634 is an Armstrong number.
In this program, instead of using while loop, we've used two for loops.
The first for loop is used to count the number of digits in the number. It is the condensed
form of:
for (;originalNumber != 0; originalNumber /= 10) {
n++;
}
The second for loop then calculates the result where on each iteration, the remainder is
powered by the number of digits n .