咋改才能不超时啊?感觉没啥问题

水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=1
^3+5^3+3^3
。 本题要求编写程序,计算所有N位水仙花数。

img

img

供参考:

#include<stdio.h>
#include<math.h>
int main()
{
    int N, i, p, t, sum, n, m, k;
    scanf("%d", &N);
    i = pow(10, N - 1);
    p = pow(10, N);
    for (; 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;
}


#include <stdio.h>
int main()
{
int hun, ten, ind, n;
printf("result is:");
for( n=100; n<1000; n++ ) /整数的取值范围/
{
hun = n / 100;
ten = (n-hun100) / 10;
ind = n % 10;
if(n == hun
hunhun + tententen + indind*ind) /各位上的立方和是否与原数n相等/
printf("%d ", n);
}
printf("\n");

return 0;

}