水仙花数,但是五位数的时候没有结果输出,不知道为什么,但是三位数和四位数可以判断。
#include<stdio.h>main()
{
int a,b,c,d,e,f,g,h;
while(scanf("%d",&a)!=EOF)
{
if(a>=100&&a<=99999)
{
if(a>=100&&a<=999)
{b=a%10;
c=a/10%10;
d=a/100;
h=d*d*d+b*b*b+c*c*c;
if(h==a)
printf("%d\n",a);
else
printf("No\n");}
else
if(a<=9999&&a>=1000)
{
b=a%10;
c=a/10%10;
d=a/100%10;
e=a/1000;
h=e*e*e*e+b*b*b*b+c*c*c*c+d*d*d*d;
if(a==h)
printf("%d\n",a);
else
printf("No\n");
}
else
if(a<=99999&&a>=10000)
{
b=a%10;
c=a/10%10;
d=a/100%10;
e=a/1000%10;
f=a/10000;
h=f*f*f*f*f+b*b*b*b*b+c*c*c*c*c+d*d*d*d*d+e*e*e*e*e;
if(a==h)
printf("%d\n",a);}
else
printf("No\n");
}
else
printf("Data error\n");
}return 0;
}