Armstrong number

C++ Program to find ArmStrong number with Explanation.

by: bscsprogramming.tk

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 a Number to find it is an Armstrong number or not";
   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.

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 checkvariable
  • 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

No comments:

Post a Comment