Code


SUBMITTED BY: itsDaveLad

DATE: March 9, 2016, 5:16 p.m.

FORMAT: Text only

SIZE: 1.6 kB

HITS: 681

  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4. vector<int> cifre (int broj) // funkcija rastavlja broj na cifre i smjesta ih u vektor
  5. {
  6. vector<int> a;
  7. while(broj!=0)
  8. {
  9. int cifra=broj%10;
  10. a.push_back(cifra);
  11. broj/=10;
  12. }
  13. return a;
  14. }
  15. int stepenovanje(int broj, int stepen) // funkcija za stepenovanje,jer bibliotecna ne radi pravilno (Za brojeve djeljive sa 5???)
  16. {
  17. int suma=1;
  18. if(stepen==0) return 1;
  19. for(int j=0;j<stepen;j++)
  20. suma*=broj;
  21. return suma;
  22. }
  23. vector<int> ArmstrongoviBrojevi (int p,int q) // trazena funkcija
  24. {
  25. vector<int> a;
  26. vector<int> b;
  27. int suma;
  28. for(int i=p;i<=q;i++)
  29. {
  30. a=cifre(i);
  31. suma=0;
  32. for(int j=0;j<a.size();j++)
  33. {
  34. suma+=stepenovanje(a[j],a.size());
  35. }
  36. if(suma==i && i>0) b.push_back(i);
  37. }
  38. return b;
  39. }
  40. int main() {
  41. int p,q;
  42. vector<int> b;
  43. cout << "Unesite dva broja: ";
  44. cin >> p >> q;
  45. b = ArmstrongoviBrojevi(p,q);
  46. if(b.size()==0) cout << "Nema Armstrongovih brojeva u trazenom opsegu";
  47. else std::cout<<"Armstrongovi brojevi u opsegu ["<<p<<", "<<q<<"]: ";
  48. {
  49. for(int i=0;i<b.size();i++)
  50. if(i!=b.size()-1) cout <<b[i]<< ",";
  51. else cout << b[i];
  52. }
  53. return 0;
  54. }

comments powered by Disqus