Armstrong number

[wpseo_breadcrumb]

Program 5: Check For Armstrong Number

Intro Text

Our problem statement is to check for Armstrong number. To solve this problem we need to understand what Armstrong number really means?.

Armstrong Number

An Armstrong numbers are also known as Narcissistic Number G.H.Hardy¬† wrote, “There are just four numbers, after unity, which are the sums of the cubes of their digits: 153=1^3+5^3+3^3 and 407=4^3+0^3+7^3 . These are odd facts, very suitable for puzzle columns and likely to amuse amateurs, but there is nothing in them which appeals to the mathematician.” . I hope you understand what Armstrong is. Now Lets move to our next phase of our problem.

Algorithm

lets design our algorithm by testing one known armstrong number. let us assume 153.

let x=153
first round:
153/10 
    remainder = 3 | quotient = 15 
    a = 3*3*3 (i.e) remainder^3
 15/10
    remainder = 5 | quotient = 1
    b = 5*5*5
 1/10
    remainder = 1
    c = 1*1*1
final answer = a+ b + c = 153 so this is a Armstrong number

So we optimize the above algorithm to effectively check for Armstrong number

the algorithm will be like

 int temp,r,result=0;
 temp=Input;
 while(Input>=1){
 r=Input%10;
 Input=Input/10;
 result+=r*r*r;
 }

Program:

So This is the program which uses the above algorithm.

 /*
 Experiment:Check for Armstrong number
 */
 #include<stdio.h>
 #include<conio.h>
 void isArmstrong(int);
 void main(){
	int num;
	clrscr();
	printf("\nCHECK FOR ARMSTRONG NUMBER");
	printf("\n**************************");
	printf("\nEnter any number...");
	scanf("%d",&num);
	isArmstrong(num);
	getch();
 }
 void isArmstrong(int num){
	int temp,r,result=0;
	temp=num;
	while(num>=1){
		r=num%10;
		num=num/10;
		result+=r*r*r;
	}
	if(result==temp){
		printf("\n%d is an armstrong number.",temp);
	}
	else{
		printf("\n%d is not an armstrong number.",temp);
	}
 }