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