Problem30

/*
 * \file   problem030.cpp
 * \brief  Project Euler - Problem30
 *
 * \author Takushi Homma (b1006018@fun.ac.jp)
 * \date 2010/03/07 16:13:33
 */

#define FIG 5

int
pow5(int n)
{
    return n*n*n*n*n;
}

#include <iostream>
using namespace std;

int
main(int argc, char **argv)
{
    int ans = 0;

    for (int n = pow5(9)*FIG; n > 1; n--) // デクリメント
    {
        int sum = 0;
        for (int m = n; m > 0; m/= 10)
        {
            sum += pow5(m%10);
        }

        if (sum == n)
        {
            ans += n;
        }
    }

    cout << ans << endl;

    return 0;
}