#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;
}