#include <iostream>
#include <vector>
using namespace std;
vector<int> cifre (int broj) // funkcija rastavlja broj na cifre i smjesta ih u vektor
{
        vector<int> a;
        while(broj!=0)
        {
                int cifra=broj%10;
                a.push_back(cifra);
                broj/=10;
        }
        return a;
}
int stepenovanje(int broj, int stepen) // funkcija za stepenovanje,jer bibliotecna ne radi pravilno (Za brojeve djeljive sa 5???)
{
        int suma=1;
        if(stepen==0) return 1;
        for(int j=0;j<stepen;j++)
        suma*=broj;
        return suma;
}
vector<int> ArmstrongoviBrojevi (int p,int q) // trazena funkcija 
{
        vector<int> a;
        vector<int> b;
        int suma;
        for(int i=p;i<=q;i++)
        {
                a=cifre(i);
                suma=0;
                for(int j=0;j<a.size();j++)
                {
                        suma+=stepenovanje(a[j],a.size());
                }
                if(suma==i && i>0) b.push_back(i);
        }
        return b;
}
int main() {
        int p,q;
        vector<int> b;
        cout << "Unesite dva broja: ";
        cin >> p >> q;
        b = ArmstrongoviBrojevi(p,q);
        if(b.size()==0) cout << "Nema Armstrongovih brojeva u trazenom opsegu";
        else std::cout<<"Armstrongovi brojevi u opsegu ["<<p<<", "<<q<<"]: ";
        {
                for(int i=0;i<b.size();i++)
                if(i!=b.size()-1) cout <<b[i]<< ",";
                else cout << b[i];
        }
        return 0;
}