#include<stdio.h>
#include <math.h>
int fun2(int n,int N)
{
int i;
int t;
int sum=0;
int tt=n;
while(n)
{
t=1;
int temp=n%10;
for(i=1;i<=N;i++)
{
t*=temp;
}
sum+=t;
n/=10;
}
if(tt==sum) return 1;
else return 0;
}
int main()
{
int N;
scanf("%d",&N);
int lim1, lim2;
lim1 = (int)pow(10, N - 1);
int s = 9;
int k;
for(k = 1; k < N; k++)
{
s = s * 10 + 9;
}
lim2 = s; //找出最小N位数和最大N位数
//printf("%d %d\n",m,n);
int i;
for(i=lim1;i<=lim2;i++)
{
int temp=fun2(i,N);
if(temp==1) printf("%d\n",i);
}
return 0;
}
求水仙花数
最新推荐文章于 2025-12-29 22:59:00 发布
1381

被折叠的 条评论
为什么被折叠?



