#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;
}