#include <stdio.h>
#include <math.h>
int is_sxh(int s,int n)
{
int i;
long sum=0,j=pow(10,n-1);
int a[10];
//
printf("j=%d\n",j);
for(i=0;i<n;i++,j=j/10)
{
a[i]=(s/j)%10;
//
printf("%d\n",a[i]);
}
for(i=0;i<n;i++)
{
a[i]=pow(a[i],3);
//
printf("%d\n",a[i]);
sum=sum+a[i];
}
//printf("%d\n",sum);
if(s==sum)
{
return 1;
}
else return 0;
}
int pws(long s)
{
long i;
int j=3,w;
for(i=100;i<100000000;i=i*10)
{
w=s/i;
if(w>=1&&w<=9)
{
return j;
break;
}
j++;
}
}
void menu()
{
long s;
printf("请输入要判断的数(水仙花):");
scanf("%ld",&s);
if(is_sxh(s,pws(s)))
{
printf("这个数是水仙花数:%ld\n",s);
}
else
{
printf("这个数不是水仙花数:%ld\n",s);
}
}
int main()
{
/*int ch;
while(1)
{
menu();
printf("是否继续输入(n/y):");
scanf(" %c",&ch);
if(ch=='n'||ch=='N')
{
break;
}
}*/
long s=1000000;
for(s=1000000;s<9999999;s++)
{
if(is_sxh(s,pws(s)))
{
printf("这个数是水仙花数:%ld\n",s);
}
}
printf("验证完毕!\n");
}