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 = 13 + 53 + 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
Thanks man your programs helps me a lot in my homework.
Your welcome bro, keep visiting!! 🙂
there is a fault as wen 1%10, x will become 10 and m will be +1000 rather than +1
The logic is absolutely correct, 1%10 = 1. You are telling wrong logic. Just run the program, it is working fine.
Same problem!
This is not the right logic,you can check this by the no: 153
The logic is absolutely fine, I think there is some issue with codeblocks. When I run it in codeblocks it gives wrong output, but when I run it online the output is correct. Check this https://ideone.com/XElygr
is it also correct for any number more than 3 digits?
Thank you
Good website easy for find out any sol.
neeraj can uhelp me doing vc++ programming
very helpful and resourceful blog
Thanks. It did helped me.
#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?
Superm program insimple way thankyou so much you help to us ..
Nice and Easy man
Keep going man