请问一下在pta里这个问题代码如下为什么会有一组数据运行超时
```c
#include<stdio.h>
#include<math.h>
int i1(int x,int N)
{
int a=0,sum=x,p=0;
while(x)
{
a=x%10;
x=x/10;
p+=pow(a,N);
}
if(p==sum)
{
return 1;
}
else
{
return 0;
}
}
int main()
{
int n = 0;
scanf("%d", &n);
int i=0;
for (i = pow(10, n - 1); i < pow(10, n); i++)
{
if(i1(i,n)==1)
{
printf("%d\n",i);
}
}
return 0;
}
```
这么改下试试:
#include<stdio.h>
#include<math.h>
int main()
{
int N,i,p,t,sum,n,m,k;
scanf("%d",&N);
p = pow(10,N);
for(i = pow(10,N-1);i < p;i++){
for(sum=0,t=i;t>0;t/=10){
m=N;k=1;
n = t%10;
while(m--)k*=n;
sum+= k;
}
if(sum==i)
printf("%d\n",i);
}
return 0;
}