#include<stdio.h>

#include<math.h>

int main()

{

int n, i, j;

scanf_s("%d", &n);

i = (int)pow(10.0, n - 1);\\n位数的开始,如n为3则i为100

j = (int)pow(10.0, n) - 1;\\n位数的结束,如n为3则j为999

int sum = 0;

for (i; i <= j; i++)\\对n位数的每一个数进行判断是否为水仙花数

{

 int sum = 0;\\用来储存各个位数上数字的立方和

 int k = 1;

 int  a;

 int t = i;

 for (k; k <= n; k++)\\分离各个数位,注意分离是倒着分离的,如153,分离顺序为3,5,1

 {

  if (k == 1) a = t % 10;//分离首位(即个位)

  else if (k != n) {

   a = t / 10 % 10;//分离中间位数的数字

   t = t / 10;//为下一次循环的t赋值

  }

  if (k == n)a = t / 10;//分离最后一位

  sum += a * a * a;//求立方和

 }if (sum == i)printf("%d\n", i);//判断是否是水仙花,如果是则打印出来

}

return 0;


}