Design a class ArmNum to check if a given number is an Armstrong number or not. [A number is said to be Armstrong if sum of its digits raised to the power of length of the number is equal to the number]
Example : 33+73 +13
1634 = 14 + 64 + 34 + 44
54748 = 55 + 45 + 75 + 45 + 85
Thus 371, 1634 and 54748 are all examples of Armstrong numbers. Some of the members of the class are given below:
Class name : ArmNum
Data members/instance variables:
n : to store the number
l : to store the length of the number
Methods/Member functions:
ArmNum (int nn) : parameterized constructor to initialize the data member n=nn
int sum_pow(int i) : returns the sum of each digit raised to the power of the length of the number using recursive technique eg. 34 will return 32 + 42 (as the length of the number is 2)
void isArmstrong( ) : checks whether the given number is an Armstrong number by invoking the function
sum_pow( ) and displays the result with an appropriate message
Specify the class ArmNumgiving details of the constructor( ), int sum_pow(int) and void
isArmstrong( ). Define a main( ) function to create an object and call the functions
accordingly to enable the task.
import java.util.*;
public class ArmNum
{
int n,l;
static Scanner x=new Scanner(System.in);
ArmNum(int nn)
{
n=nn;
l=Integer.toString(n).length();
}
int sum_pow(int i)
{
if(i==0)
return 0;
else
return (int)Math.pow(i%10,l) + sum_pow(i/10);
}
void isArmstrong()
{
if(sum_pow(n)==n)
System.out.println(n + "is an Armstrong number");
else
System.out.println(n + "is not an Armstrong number");
}
static void main()
{
ArmNum obj=new ArmNum(54748);
obj.isArmstrong();
}
}