An Armstrong number is a three-digit integer that is the sum of the cubes of its digits.
This simply means that if xyz = x3+y3+z3
, it is an Armstrong number.For example,153
is an Armstrong number because13+53+33= 153
// 370 = (3*3*3)+(7*7*7)+(0) = 27+343+0=370
#include <stdio.h> #include <math.h> #define max 10 int top = -1; int stack[max]; void push(int); int pop(); int findarmstrong(int); void main() { int n; printf("Enter a number "); scanf("%d", & n); if (findarmstrong(n)) printf("%d is an armstrong number", n); else printf("%d is not an armstrong number", n); } int findarmstrong(int num) { int j, remainder, temp, count, value; temp = num; count = 0; while (num > 0) { remainder = num % 10; push(remainder); count++; num = num / 10; } num = temp; value = 0; while (top >= 0) { j = pop(); value = value + pow(j, count); } if (value == num) return 1; else return 0; } void push(int m) { top++; stack[top] = m; } int pop() { int j; if (top == -1) return (top); else { j = stack[top]; top--; return (j); } }
// Enter a number 370 // 370 is an armstrong number