#include <stdio.h> #include <math.h>

int main() { int N; scanf("%d", &N); int begin = pow(10, N-1); // 起始数字 int end = pow(10, N); // 终止数字

for (int i = begin; i < end; i++)
{
    int sum = 0; // 计算每个数的N次方和
    int num = i;
    while (num > 0)
    {
        int digit = num % 10; // 取出每一位数字
        sum += pow(digit, N); // 计算N次方和
        num /= 10; // 去掉已经计算的最低位
    }
    if (sum == i) // 如果符合水仙花数定义,输出
        printf("%d\n", i);
}

return 0;

}


原文地址: http://www.cveoy.top/t/topic/brMu 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录