• Source
    1. #include <iostream>
    2. #include <vector>
    3. using namespace std;
    4. bool check ( vector< vector<int>>& pows,int x,int p)
    5. {
    6. int sum=0;
    7. int temp=x;
    8. while(x!=0)
    9. {
    10. sum+=pows[x%10][p];
    11. x/=10;
    12. }
    13. if(sum==temp)
    14. return true;
    15. return false;
    16. }
    17. int main()
    18. {
    19. vector< vector< int>> pows( 10, vector<int>(7,1));
    20. for(int i=1;i<=6;++i)
    21. pows[0][i]=0;
    22. for(int i=2;i<=9;++i)
    23. for(int j=1;j<=6;++j)
    24. pows[i][j]=pows[i][j-1]*i;
    25. int n;
    26. cin>>n;
    27. long long ans=0;
    28. for(int i=10;i<=1000000;++i)
    29. if(check(pows,i,n))
    30. {
    31. ans+=i;
    32. }
    33. cout<<ans;
    34. }