# Armstrong Number Program in Java

In the previous posts, we have developed many Java programs based on the numbers. Now in this post, we will develop the Armstrong number program in Java. First, we will develop a java program to check an Armstrong number, and then we will develop a java program for an Armstrong number between 1 to 1000.

A positive integer is called Armstrong number of order n ifabcd…. = an + bn + cn + dn + ….

For Example :- 153
13 + 53 + 33 = 1 + 125 + 27 = 153
So, 153 is an Armstrong number of order 3.

4150 = 45 + 15 + 55 + 05 = 1,024 + 1 + 3,125 + 0 = 4150
So, 4150 is an Armstrong number of order 5

Procedure to check Armstrong number of order N

1) Take a variable and take an order to check
2) Declare variables `lastDigit`, `power`, and `sum` Initialize sum with 0
3) Take a temporary variable `n` to store numbers
4) Find the last digit of `n`
5) Calculate the power of that `lastDigit` with order i.e. `pow(lastDigit, order)`
6) Add the result into the `sum`
7) Remove the last digit
8) Repeat steps 4 to 7 until the number becomes 0
9) Compare sum value and the actual number
==> If both are the same then it is the Armstrong number of the given order
==> Else it is not Armstrong number of the given order

## Java method to check Armstrong number of order N

``````public static boolean isArmstrong(int number, int order){

// declare variables
int lastDigit = 0;
int power = 0;
int sum = 0;

// temporary variable to store number
int n = number;

while(n!=0) {

// find last digit
lastDigit = n % 10;

// find power of digit
power = (int) Math.pow(lastDigit, order);

// add power value into sum
sum += power;

// remove last digit
n /= 10;
}

if(sum == number) return true;
else return false;
}``````

In this method to find the power, we take the support of the `pow()`, which is defined in the Math class. The `pow()` is a static method so we can call it without creating an object of the Math class, and it returns double so we need to use type casting it to int type. Instead of using the pre-defined `pow()` method of Math class, you can also use your own method to find the power of a number.

## Java program

Based on the above `isArmstrong(-,-)` method we will write a java program to check the Armstrong number of order N.

``````import java.util.Scanner;

public class ArmstrongNumber {
public static boolean isArmstrong(int number, int order){

// declare variables
int lastDigit = 0;
int power = 0;
int sum = 0;

// temporary variable to store number
int n = number;

while(n!=0) {
// find last digit
lastDigit = n % 10;

// find power of digit
power = (int) Math.pow(lastDigit, order);

// add power value into sum
sum += power;

// remove last digit
n /= 10;
}

if(sum == number) return true;
else return false;
}

public static void main(String[] args) {

// declare variables
int number = 0;
int order = 0;

// create Scanner class object
Scanner scan = new Scanner(System.in);

// take input
System.out.print("Enter integer number::");
number = scan.nextInt();
System.out.print("Enter order to check::");
order = scan.nextInt();

//check number is Armstrong number or not
if(isArmstrong(number, order))
System.out.println( number +" is "
+"Armstrong number of order "+ order);
else
System.out.println( number +" is not "
+"Armstrong number of order "+ order);

// close Scanner class object
scan.close();
}
}``````

The output for different test-cases:-

Enter an integer number:: 153
Enter an order to check:: 3
153 is Armstrong number of order 3

Enter an integer number:: 153
Enter an order to check:: 5
153 is not Armstrong number of order 5

Enter an integer number:: 4150
Enter an order to check:: 3
4150 is not Armstrong number of order 3

Enter an integer number:: 4150
Enter an order to check:: 5
4150 is Armstrong number of order 5

## Java program for Armstrong number between 1 to 1000

We can also find all Armstrong numbers of a given order in the given range. For this purpose, we need to take the minimum, and maximum values of the range and order to check the Armstrong number.

``````import java.util.Scanner;

public class ArmstrongNumberInRange {
public static boolean isArmstrong(int number, int order){

// declare variables
int lastDigit = 0;
int power = 0;
int sum = 0;

// temporary variable to store number
int n = number;

while(n!=0) {
// find last digit
lastDigit = n % 10;

// find power of digit
power = (int) Math.pow(lastDigit, order);

// add power value into sum
sum += power;

// remove last digit
n /= 10;
}

if(sum == number) return true;
else return false;
}

public static void main(String[] args) {

// declare variables
int minRange , maxRange;
int order = 0;

// create Scanner class object
Scanner scan = new Scanner(System.in);

System.out.print("Enter min &amp; max "+
"Range value:: ");
minRange = scan.nextInt();
maxRange = scan.nextInt();

System.out.print("Enter order to check::");
order = scan.nextInt();

// check in range
System.out.println("Armstrong numbers"+
" from "+minRange+" to "+maxRange+
" of order " +order+" is:: ");

for(int i = minRange; i&lt;= maxRange; i++)
if(isArmstrong(i, order))
System.out.print( i + " ");

// close Scanner class object
scan.close();
}
}``````

The output for different test-cases:-

Enter min & max Range value:: `1 1000`
Enter an order to check:: 3
Armstrong numbers from 1 to 1000 of order 3 is::
`1 153 370 371 407 `

Enter min & max Range value:: `1 10000`
Enter an order to check:: 5
Armstrong numbers from 1 to 10000 of order 5 is::
`1 4150 4151 `

If you enjoyed this post, share it with your friends. Do you want to share more information about the topic discussed above or do you find anything incorrect? Let us know in the comments. Thank you!