# c++ program to check whether given input is armstrong number or not.

```#include <iostream>
using namespace std;

int main()
{
int origNum, num, rem, sum = 0;
cout << "Enter a positive  integer: ";
cin >> origNum;

num = origNum;
while(num != 0)
{
digit = num % 10;
sum += digit * digit * digit;
num /= 10;

}
if(sum == origNum)
cout << origNum << " is an Armstrong number.";
else
cout << origNum << " is not an Armstrong number.";
return 0;
}
```

## Output

```Enter a positive integer: 153
153 is an Armstrong number.
```

## Explanation

153=1*1*1+5*5*5+3*3*3
• In the above program, a positive integer is asked to enter by the user which is stored in the variable  origNum .
• Then, the number is copied to another variable  num . This is done because we need to check the  origNum  at the end.
• Inside the while loop, last digit is separated from  num  by the operation digit = num % 10;. This digit is cubed and added to the variable  sum .
• Now, the last digit is discarded using the statement  num /= 10;.
• In the next cycle of while loop, second last digit is separated, cubed and added to  sum .
• This continues until no digits are left in  num . Now, the total sum  sum  is compared to the original number  origNum .
• If the numbers are equal, the entered number is an Armstrong number. If not, the number isn't an Armstrong number.