FOR FREE MATERIALS

Armstrong Number

Back to Programming

Description

A number is said to be an Armstrong Number if the number is equal to the sum of its digits to the power the number of digits. That means, if the number has 3 digits then the number will be an Armstrong number if the number is equal to the sum of the cube of its digits.

EXAMPLE:

153 is an Armstrong Number because the sum of its cube returns the number itself.

Here, the number of digits is 3. 

13+53+33  = 1 + 125 + 27 = 153.

Similarly, if we consider the number 1634. Here, the number of digits is 4.

Therefore, 14+64+34+44 = 1 + 1296 + 81 + 256 = 1634.

1634 is also an Armstrong Number.

Let consider a number 123. Here, the number of digits is 3.

13+23+33 = 1 + 8 + 27 = 36. Hence, the sum of the cube is not returning the original number. So, it is not an Armstrong Number.

Algorithm

INPUT: A number

OUTPUT: Whether it is an Armstrong Number or not.

PROCESS:

Step 1: [Taking the input]

               Read n [the number to be checked]

Step 2: [Checking for an Armstrong Number]

               Set c<-0

               Set s<-0

Set m<-n

[Counting the digits of the number]

While m>0 repeat

               Set c<-c+1

               Set m=m/10

[End of ‘while’ loop]

Set m<-n

[Calculating the sum of the powers]

While m>0 repeat

               Set s<-s + (m mod 10) c

                              Set m=m/10

               [End of ‘while’ loop]

               [Checking for an Armstrong Number]

               If n=s then

                              Print “Armstrong Number”

               Else

                              Print “Not an Armstrong Number”

               [End of ‘if’]

Code

TIME COMPLEXITY:

while(m>0)-------------------------------------O(p)

               {

                              c++;

                              m/=10;

               }

               //copying the value of n in m

               m=n;

               //finding the sum of the digits^number of digits

               while(n>0)------------------------------------------O(p)

               {

                              s=s+pow(n%10,c);

                              n=n/10;

               }

 

The time complexity of this program is O (p) where ‘p’ is the number of digits of the given input.

SPACE COMPLEXITY:

The space complexity of this program is O(1) as it requires a constant number of memory space to execute the program for any given input.