The need:
This one is trivial program at this point of time. Still putting on demand of Rahul Devra.For those who dont know what is Armstrong number (Narcissistic number) first have a look at Narcissistic number on wikipedia.
The code:
----------------------------------------------------------
/*Find whether entered number is armstrong number or not*/
#include<stdio.h>
#include<math.h>
int digit_count(int x);
int isArmstrong(int x);
int main()
{
int flg=0,num;
printf("This is a program to find whether a number is armstrong number\n");
printf("enter a natural number\n");
scanf("%d",&num);
if(isArmstrong(num))
printf("%d is an armstrong number\n",num);
else
printf("%d is not an armstrong number\n",num);
getchar();
return 0;
}
int digit_count(int x)
{
int count=0;
if(x==0)
return 0;
while(x/=10)
count++;
return count+1;
}
int isArmstrong(int x)
{
int i,num_digit,sum=0,current_digit,holder;
num_digit = digit_count(x);
holder=x;
for(i=0;i<num_digit;i++)
{
current_digit = x%10;
sum+=pow(current_digit,num_digit);
x/=10;
}
if(sum==holder)
return 1;
else
return 0;
}----------------------------------------------------------
Approach:The approach is simple. Go by the definition, take digit by digit check for the condition for Armstrong number and that's it.
No comments:
Post a Comment
feel free to ask your doubts... if any
you can post your doubts on
www.facebook.com/programsimply