- #include <stdio.h>
- int main(){
- int n, temp, sum, i;
- int pow[6][11] = {{0,1,4,9,16,25,36,49,64,81,100},\
- {0,1,8,27,64,125,216,343,512,729,1000},{0,1,16,81,256,625,1296,2401,4096,6561,10000},\
- {0,1,32,243,1024,3125,7776,16807,32768,59049,100000},\
- {0,1,64,729,4096,15625,46656,117649,262144,531441,1000000},\
- {0,1,128,2187,16384,78125,279936,823543,2097152,4782969,10000000}};
- scanf("%d",&n);
- for(i = pow[n-3][10]; i < pow[n-2][10]; ++i)
- {
- temp = i;
- sum = 0;
- while(temp)
- {
- sum += pow[n-2][temp%10];
- temp /= 10;
- }
- if(sum == i){
- printf("%d\n",i);
- }
- }
-
- return 0;
- }
复制代码 |