请编写一个程序寻找一种特殊整数:一个 n 位的正整数等于其各位数字的n次方之和。
例如:407=4×4×4+0×0×0+7×7×7。所以407就是一个特殊数。
输入:
正整数的位数n(n<=6)。
输出:
所有此n位特殊数。每个数占一行。若不存在符合条件的特殊数,则输出提示:“No output.”;若存在,则从小到大进行输出。
源代码
#include<stdio.h>
#include<math.h>
int main()
{
int i,n,min,count,p,flag=0;
scanf("%d",&n);
min = pow(10,n-1);
for(i=min;i<min*10;i++)
{
count = 0;
p = i;
while(p)
{
count += pow(p%10,n);
p /= 10;
}
if(count == i)
{
flag = 1;
printf("%d\n",i);
}
}
if(flag==0)
printf("No output.\n");
}