#include "stdio.h"
int isSXH(int n)
{
int g,s,b;
g = n%10;
s = n/10%10;
b = n/100;
if(g*g*g + s*s*s +b*b*b == n)
return 1;
return 0;
}
int main()
{
int a,b,i,flag,preflag,out;
while(scanf("%d%d",&a,&b) != EOF)
{
preflag = out = 0;
flag = b - a + 1;
for(i=a; i<=b;i++)
{
isSXH(i) ? out ? printf(" %d",i) : printf("%d",i) : flag -- ; //若已有输出则需要输出空格+数字,否则只需要输出数字
if(preflag == flag) //若是前一个循环的flag与当前的flag相同,表示是水仙花数已经打印了,所以相同
{
out = 1; //标志已有打印
continue; //直接进入下个循环,不用再给preflag赋值
}
preflag = flag;
}
out ? puts("") : out; //一次遍历结束,若有输出则需要换行
if(!flag)
puts("no");
}
}

京公网安备 11010502036488号