View difference between Paste ID: zAEiaLUS and e0nRYNRF
SHOW: | | - or go back to the newest paste.
1
/*
2
http://mathworld.wolfram.com/NarcissisticNumber.html
3
4
you should take a look at this, coz in general, our idea of armstrong numbers are wrong
5
we only look at base 3 narcissistic numbers as "armstrong" numbers
6
7
153(base 3 narcissistic) = 1^3 + 5^3 + 3^3
8
1634(base 4 narcissistic) = 1^4 + 6^4 + 3^4 + 4^4
9
10
and so on, into the higer bases.
11
ps: 
12
since we deal with base 3 narcissistic numbers as "armstrong" numbers, there are 4 such "armstrongs" only >> 153, 370, 371, 407
13
14
*/
15
16
#include<stdio.h>
17
int main(){
18-
	int ip=0,index=0,temp=0,sum=0,rem=0,bool=0;
18+
	int ip=0,index=0,temp=0,sum=0,rem=0,bool=0,narBase=0;
19
	
20
	do{
21
		printf("enter the number: ");
22
		scanf("%d",&ip);
23
		printf("enter the narcissistic base: ");
24
		scanf("%d",&narBase);
25
		
26
		temp=ip;
27
		
28-
			rem = (temp%10);
28+
29-
			sum+= rem*rem*rem;
29+
30
			
31
			sum+=myPow((temp%10),narBase);
32
			temp = temp/10;	
33
		}
34
		
35
		printf("\n\ninput number: %d  sum: %d\n",ip,sum);
36-
			printf("hence %d is an armstrong number",ip);	
36+
37
		if(sum==ip){
38
			printf("hence %d is an narcissistic number of base %d",ip,narBase);	
39-
			printf("hence %d is not an armstrong number",ip);
39+
40
		else{
41
			printf("hence %d is not a narcissistic number of base %d",ip,narBase);
42
		}
43
		
44
		printf("\n\niterate again for new number?\n yes(1) or no(0)\n enter choice: ");
45
		scanf("%d",&bool);
46
		
47
	}while(bool==1);
48
	
49
	return 0;
50
}
51
52
53
int myPow(int number, int exponent) // this is FAR from the fastest method outthere, but it gives u an idea
54
{
55
    printf("number: %d exponent: %d\n",number,exponent);
56
	int index=0,temp=0;
57
	
58
	for(index=1;index<=exponent;index++){
59
		if(index==1)
60
		temp=number;
61
		else
62
		temp=temp*number;	
63
	}
64
	printf("returned number: %d\n",temp);
65
    return temp;
66
}