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.

Also see:- Special numberMagic numberArmstrong numberPerfect numberEvil NumberSpy NumberSunny number in Java

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);

      // read inputs
      System.out.print("Enter min & 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<= 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 you find anything incorrect? Let us know in the comments. Thank you!

Leave a Comment

Your email address will not be published. Required fields are marked *