A C++ program to check whether a given integer of any size is an Armstrong number or not.
For a given number with number of digits n, it is called an Armstrong number if sum of each digit raised to n is equal to the number itself.
DESCRIPTION OF FUNCTIONS-
1) digits(int x)- Returns the number of digits in the integer x.
2) armstrong(int x)- Returns the result of sum of all digits raised individually to the number of digits.
3) main() - Returns whether the integer is an Armstrong number or not
#include
#include
using namespace std;
int digits(int x)
{
int size = 0;
while (x)
{
size++;
x = x/10;
}
return size;
}
int armstrong(int x)
{
int remainder,result=0,size=digits(x);
while (x != 0) {
remainder = x % 10;
result += pow(remainder,size);
x /= 10;
}
return result;
}
void input(int &num)
{
cout<<"Enter an integer-";
cin>>num;
}
int main() {
int num;
input(num);
if (armstrong(num) == num)
cout << num << " is an Armstrong number.";
else
cout << num << " is not an Armstrong number.";
return 0;
}
Submitted by Gokul S Nambiar (Gokul)
Download packets of source code on Coders Packet
Comments