C program to Check whether a Number is Armstrong or Not

**A number is Armstrong, if sum of it’s digit raised to power of total number of digits in that number is equal to the original number .
**Example.

consider a number 153, it has 3 digits, where 1

^{3}+5

^{3}+3

^{3}=153. Hence 153 is an Armstrong number.

% is the remainder after division (modulo division) arithmetic operator in C.

11 % 5 = 1 (11 / 5 = 2 with remainder 1)

// C program to find Armstrong number #include <stdio.h> int power(int x, unsigned int y) { if (y == 0) return 1; if (y % 2 == 0) return power(x, y / 2) * power(x, y / 2); return x * power(x, y / 2) * power(x, y / 2); } int count(int x) { int n = 0; while (x) { n++; x = x / 10; } return n; } int isArmstrong(int x) { int n = count(x); int temp = x, sum = 0; while (temp) { int r = temp % 10; sum += power(r, n); temp = temp / 10; } if (sum == x) return 1; else return 0; } int main() { int num; printf("\nEnter the number="); scanf("%d", &num); if (isArmstrong(num) == 1) printf("%d is an Armstrong number\n", num); else printf("%d is an not Armstrong number\n", num); return 0; }

$ gcc armstrong.c $ ./a.outEnter the number=5 5 is an Armstrong number $ ./a.outEnter the number=153 153 is an Armstrong number $ ./a.outEnter the number=1 1 is an Armstrong number $ ./a.out Enter the number=99 Enter the number=1634 |

If you like the post C program to Check whether a Number is Armstrong or Not, please share your feedback!

**also see**

C Programming language |
Go Programming language |

Linked List |
Array |

Simplification |
Queue |

DBMS |
Reasoning |

Aptitude |
HTML |