Definition of Armstrong Number:
A number is Armstrong if the sum of cubes of individual digits of a number is equal to the number itself.
Example:
0, 1, 153, 370, 371, 407 etc.
Explanation:
Let us take 153.
So, the sum of cubes of individual digits
= 13 + 53 + 33
= 1 + 125 + 27
= 153
Programming Approach (Algorithm):
Step 1: number = <Entered Number>
Step 2: Right Most Digit = number % 10
Step 3: number = number / 10
Step 4: Sum = Sum + Cube of Right Most Digit
Step 5: Repeat Step 2, 3 & 4 until number = 0
Step 6: if Sum = <Entered Number> then return 1
// <Entered Number> is Armstrong number
else return 0 // <Entered Number> is not an Armstrong number
C Program:
/*
* PROGRAM NAME: Armstrong Number
* SOURCE: http://CProgrammingOnline.blogspot.com
*/
/* HEADER FILE DECLARATION SECTION */
#include<stdio.h>
/* FUNCTION PROTOTYPE DECLARATION SECTION */
_Bool armstrong(int );
/* MAIN PROGRAM SECTION */
int main(char* argv[], int argc){
int number; //Used to store the given number
printf("\nProgram to Test Whether a Number is Armstrong Number or Not\n");
printf("Enter an Integer Value (Max Size = %d bytes): ",sizeof(int));
scanf("%d",&number);
if(armstrong(number)==1){
printf("\n%d is an armstrong number.",number);
} else {
printf("\n%d is not an armstrong number.",number);
}
}
/*
* FUNCTION SIGNATURE: _Bool armstrong(int );
* INPUT: int number
* OUTPUT: 1 if number(INPUT) is an armstrong number
* 0 if number(INPUT) is not an armstrong number
*/
_Bool armstrong(int number){
int stored_number = number; //Used to Store the given number
int sum = 0; //Used to Store the sum of digits
char digit; //Used to Store the digits
while(stored_number > 0){
digit = stored_number % 10;
sum += digit * digit * digit;
stored_number /= 10;
}
if(sum == number){
return 1;
} else {
return 0;
}
}
Confused, Have any questions?
Post your comments, questions. State your confusion to us. We're here to help you.
Are you facing problems in writing C programs?
Hire us now!
Submit Your Problem Now
Subscribe via Email