Java Program to check Armstrong Number

Given a number x, determine whether the given number is Armstrong number or not. A positive integer of n digits is called an Armstrong number of order n (order is number of digits) if.

abcd... = pow(a,n) + pow(b,n) + pow(c,n) + pow(d,n) + ....

Example:

Input : 153
Output : Yes
153 is an Armstrong number.
1*1*1 + 5*5*5 + 3*3*3 = 153

Input : 120
Output : No
120 is not a Armstrong number.
1*1*1 + 2*2*2 + 0*0*0 = 9

Input : 1253
Output : No
1253 is not a Armstrong Number
1*1*1*1 + 2*2*2*2 + 5*5*5*5 + 3*3*3*3 = 723

Input : 1634
Output : Yes
1*1*1*1 + 6*6*6*6 + 3*3*3*3 + 4*4*4*4 = 1634

Java

 // Java program to determine whether the number is // Armstrong number or not public class Armstrong {     /* Function to calculate x raised to the        power y */     int power(int x, long y)     {         if( y == 0)             return 1;         if (y%2 == 0)             return power(x, y/2)*power(x, y/2);         return x*power(x, y/2)*power(x, y/2);     }        /* Function to calculate order of the number */     int order(int x)     {         int n = 0;         while (x != 0)         {             n++;             x = x/10;         }         return n;     }        // Function to check whether the given number is     // Armstrong number or not     boolean isArmstrong (int x)     {         // Calling order function         int n = order(x);         int temp=x, sum=0;         while (temp!=0)         {             int r = temp%10;             sum = sum + power(r,n);             temp = temp/10;         }            // If satisfies Armstrong condition         return (sum == x);     }        // Driver Program     public static void main(String[] args)     {         Armstrong ob = new Armstrong();         int x = 153;         System.out.println(ob.isArmstrong(x));         x = 1253;         System.out.println(ob.isArmstrong(x));     } }

Please refer complete article on Program for Armstrong Numbers for more details!

My Personal Notes arrow_drop_up

Article Tags :

2

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.