Find Armstrong number in C++ with logic explanation and code dry run

BOOKC, this time share about Find Armstrong number in C++ with logic explanation and code dry run
What is Armstrong number?
A number in which the sum of cube of its individual digits is equal to the number itself is called Armstrong number
For Example: 1^3 + 5^3 + 3^3 = 153
4 * 4 * 4 + 0 * 0 * 0 + 7 * 7 * 7 = 407 is an Armstrong number.


C++ program which takes input a number and check whether it is Armstrong Number or not



  #include<iostream>
  using namespace std;
  int main()
  {
  int armstrong=0,num=0,result=0,check;
  cout<<"Enter Number to find it is an Armstrong number?";
       cin>>num;
       check=num;
       for(int i=1;num!=0;i++){
           armstrong=num%10;
           num=num/10;
           armstrong=armstrong*armstrong*armstrong;
           result=result+armstrong;
       }
       if(result==check){
       cout<<check<<"  is an Armstrong Number";
       }
       else{
       cout<<check<<"  is NOT an Armstrong Number";
       }
       return 0;
    }



Note: Program can be coded in more than one ways above program is very simple so any one can understand the logic of program.

Recommended: Change program logic and do experiment with it for fast learning.

Image view of the program click on image to view large
Find Armstrong number in c++ code


Logic Explanation:

Concept Used:  for loop, if-else statement
  • To make logic firstly concept about Armstrong number should be very clear
  • We took some variables in which we take input, make calculations and produce results
  • Program take input number in variable num and store it in check variable
  • In for loop we take mod of num with 10 and stores it in variable Armstrong then we divide it with 10(below dry running will make more clear the working)
  • Then we take cubes of Armstrong variable and add it into result variable
  • When num=0; then for loop break after for loop using if else statement we test if our result equals to check variable then number is Armstrong else not.

Dry Running The Armstrong number Code:

Let input is equal to 153 

variable values before for loop
num=153; check=153; Armstrong=0; result=0;
variable values in for loop line by line
for i=1
Armstrong=3;
 num=15;
Armstrong=3*3*3=27 
result=0+27=27;

for loop condition check: num is not equal to zero loop will run again

for i=2
Armstrong=5;
num=1;
Armstrong=5*5*5=125 
result=27+125=152;

for loop condition: num is not equal to zero loop will run again

for i=3
Armstrong=1;
num=0;
Armstrong=1*1*1=1; 
result=152+1=153;


for loop condition: num is EQUAL TO ZERO loop will run again

Loop will break and if else condition will be checked as or result=153 and check=153 
if condition will true and program will show output
153 is an Armstrong Number


More C++ Programs Examples:

  • Find prime number in c++
  • Find palindrome number in c++
  • Find factorial of a number in c++
  • C++ Program to print box shape using for loop 
  • C++ program to find Fibonacci Series with understanding logic
Bookc
Admin

Hopefully the information we provide can be useful.

Related Article

Press ESC to close