In this program, you'll learn to check whether a given number is armstrong number or not. You'll learn to do this by using a for loop and a while loop in Java.

A positive integer is called an Armstrong number of order `n` if

abcd... = a^{n}+ b^{n}+ c^{n}+ d^{n}+ ...

In case of an Armstrong number of 3 digits, the sum of cubes of each digits is equal to the number itself. For example:

153 = 1*1*1 + 5*5*5 + 3*3*3 // 153 is an Armstrong 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.");
}
}
```

When you run the program, the output will be:

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.

- On each iteration, the last digit of
- Finally,
`result`and`number`are compared. If equal, it is an armstrong number. If not, it isn't.

```
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.");
}
}
```

When you run the program, the output will be:

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, remainder is powered by the number of digits `n`.

Visit this page to learn, how you can display all armstrong numbers between two intervals.

It takes a lot of effort and cost to maintain Programiz. We would be grateful if you support us by either:

**Disabling AdBlock on Programiz. We do not use intrusive ads.**

or

Donate on Paypal
By using Programiz, you agree to use cookies as stated in our Privacy policy Continue