Program for Armstrong Number in C++

Here you will get program for armstrong number in C++.

A number whose sum of digits raised to power n is equal to itself is called armstrong number. Here n is the total digits in the number.

For example, 153 is armstrong number as 153 = 1+ 5+ 33 = 1 + 125 +27.

Program for Armstrong Number in C++

#include<iostream>
#include<math.h>

using namespace std;

int main()
{
	int n,m=0,p=0,x,y;
	cout<<"Enter any number: ";
	cin>>n;

	y=n;
	
	while(y!=0){
		y=y/10;
		p++;
	}
	
	y=n;
	
	while(n!=0)
	{
		x=n%10;
		m+=pow(x,p);
		n=n/10;
	}
	
	if(y==m)
		cout<<"The given number is an armstrong number";
	else
		cout<<"The given number is not an armstrong number";

	return 0;
}

 

Output

Enter any number: 7
The given number is an armstrong number

15 thoughts on “Program for Armstrong Number in C++”

    1. The logic is absolutely correct, 1%10 = 1. You are telling wrong logic. Just run the program, it is working fine.

  1. #include
    #include
    using namespace std;

    int cnt(int num){
    int c=0;
    while(num!=0){
    num=num/10;
    c++;
    }
    return c;
    }

    int chkArm(int base,int pwr){
    int result,temp;

    while(base!=0){
    temp = base%10;
    cout << " temp is — " << temp << endl;
    result+=pow(temp,pwr);
    cout << "result is — "<<result << endl;
    base=base/10;
    }
    return result;
    }
    int main()
    {
    int num,c,result;

    cout <>num;

    c=cnt(num);

    cout << "\nYou entered " << c << " digits." <<endl;

    result = chkArm(num,c);

    cout << "Result is : " << result << endl;
    }

    Can some one please tell me that is there any problem in my code ? or if is it correct why its not giving the correct result?

Leave a Comment

Your email address will not be published. Required fields are marked *