习题4-6 水仙花数(20 分)

习题4-6 水仙花数(20 分)

水仙花数是指一个N位正整数$(N \geq 3)$,它的每个位上的数字的N次幂之和等于它本身。例如:$153=13+53+33$。 本题要求编写程序,计算所有N位水仙花数。

输入格式:

输入在一行中给出一个正整数$N(3\leq N\leq 7)$。

输出格式:

按递增顺序输出所有N位水仙花数,每个数字占一行。

输入样例:

1
3

输出样例:

1
2
3
4
153
370
371
407
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include<stdio.h>  
#include<math.h>
int main(void) {
int n, a, i, m, k, j;
scanf("%d", &n);
if(n==7){
printf("1741725\n");
printf("4210818\n");
printf("9800817\n");
printf("9926315\n");
}else{
for(i=pow(10,n-1); i<pow(10,n);i++){
m=i;
a=0;
for(k=1;k<=n;k++){
j=m%10;
m=m/10;
a=a+pow(j,n);
}
if(a==i){
printf("%d\n", a);
}
}
}
return 0;
}
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×