运行目的是求不超过99999的自然数,且他的每一位的位数加起来的次方等于它本身(例如9*9=81,18*18*18=5832)

不知为何能运行但无法作出正确答案


#include<stdio.h>
#include<math.h>
#include <iostream>
using namespace std;

int main()
{
    int i, X = 0, Y, Z=0, a;
    for (i = 0;i < 100000;i++);
    {
        if (i >= 10)
        {
            Y = i;
            Z = i;
            while (Y != 0)
            {
                i = Y % 10;
                Y = Y / 10;
                X = X + i;
            }
        }
        else { X = i; }
        for (a = 1, pow(X, a) < Z;a++;)
            if ((X ^ a) == Z)
                cout << X << "^" << a << "=" << Z << endl;
    }
    
}


int main()
{
    int N = 100000;
    int sum, temp, result;
    for (int i = 1; i < N; i++)
    {
        sum = 0;
        temp = i;
        while(temp > 9)
        {
            sum += temp % 10;
            temp /= 10;
        }
        sum += temp;
        result = sum * sum;
        //cout<<i<<"---------"<<sum<<endl;
 
        while (result < i && sum != 1)
        {
            result *= sum;
        }
        if (result == i)
        {
            cout<<"number : "<<i<<endl;
        }
    }

    return 0;
}

我都没看懂题目

我也没看懂题目