Armstrong number in java

Let’s learn armstrong number in java.

armstrong number in java

Armstrong number in java

Check whether a given number is armstrong number or not is one of the most asked interview question.

An armstrong number is a number that is equal to sum of cube of its own digits. Let me explain with an example, 153 is an Armstrong number. How?

Also read – palindrome number in java

Here is the case of 3 digit armstrong number,

153 = (1 * 1 * 1) + (5 * 5 * 5) + (3 * 3 * 3)

Now cubes of above digits is,

(1 * 1 * 1) = 1

(5 * 5 * 5) = 125

(3 * 3 * 3) = 27

So, 1 + 125 + 27 = 153

Hence 153 is an armstrong number where sum of the cubes of its digits is equal to number itself. Now let’s see java program to check whether the given number is armstrong number using scanner and while loop,

import java.util.Scanner;

public class ArmstrongNumber
{
   public static void main(String[] args)
   {
      int x;
      int y;
      int z = 0;
      int temp;

      Scanner sc = new Scanner(System.in);
      System.out.println("Please enter a number : ");
      x = sc.nextInt();

      temp = x;
      while(x > 0)
      {
         y = x % 10;
         x = x / 10;
         z = z + (y * y * y);
      }

      if(temp == z)
      {
         System.out.println(temp + " is an Armstrong Number.");
      }
      else
      {
         System.out.println(temp + " is not an Armstrong Number.");
      }
   }
}



Output:

Please enter a number : 153
153 is an Armstrong Number.

Check armstrong number for n digits

Now let’s learn to check armstrong number for 4 digit. Here’s the program that checks whether the given number is armstrong number or not,

public class ArmstrongNumberDemo 
{
   public static void main(String[] args) 
   {
      int num = 9474, realNumber, remainder, output = 0, a = 0;
      realNumber = num;
      for(;realNumber != 0; realNumber /= 10, ++a);
      realNumber = num;
			
      for(;realNumber != 0; realNumber /= 10)
      {
         remainder = realNumber % 10;
         output += Math.pow(remainder, a);
      }
			
      if(output == num)
      {
         System.out.println(num + " is an Armstrong number.");
      }
      else
      {
         System.out.println(num + " is not an Armstrong number.");
      }
   }
}


Output:

9474 is an Armstrong number.

Java program for armstrong number using recursion

Let’s check for armstrong number using recursion. In java, a function that calls itself is called recursion. Here’s the complete java program to find armstrong numbers,

public class RecursionArmstrong 
{
   int num;
   int armstrongNumber(int digit, int i)
   {
      if(digit != 0)
      {
         num = digit % 10;
         i = i + (num * num * num);
         digit /= 10 ;
         return armstrongNumber(digit, i);
      }
      return i;
   }

   public static void main(String[] args) 
   {
      RecursionArmstrong obj = new RecursionArmstrong();
      int number;
      System.out.println("Armstrong numbers between 1 to 1000");
      for(int a = 1; a < 500; a++)
      {
         number = obj.armstrongNumber(a, 0);
         if(number == a)
         {
            System.out.println(a);
         }
      }
   }
}



Output:

Armstrong numbers between 1 to 1000
1
153
370
371
407