Question 7

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();
    }
}
This entry was posted in ISC2019. Bookmark the permalink.

Leave a Reply

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