• Source
    1. //Można zawsze inaczej - to zadanie dla Ciebie
    2. #include <iostream>
    3. #include <vector>
    4. #include <algorithm>
    5. using namespace std;
    6. /* przyśpieszenie strumieni iostream
    7. Wywołać std::ios_base::sync_with_stdio(false); przed jakąkolwiek operacją we/wy;
    8. Używać '\n' zamiast std::endl;
    9. Wywołać std::cin.tie(nullptr); przed przemieszanymi operacjami we/wy.
    10. */
    11. int main() {
    12. ios_base::sync_with_stdio(false);
    13. //do pierwszego rozwiązania
    14. vector <int> v;
    15. //do drugiego rozwiązania
    16. vector <int> v1; //pierwszy podzielnik
    17. vector <int> v2; //podzielnik do pary
    18. int x=225;
    19. int p=2;
    20. //wypełniam 1 rozwiązanie
    21. while (p*p<x)
    22. {
    23. if (x%p==0)
    24. {v.push_back(p);
    25. v.push_back(x/p);}
    26. p++;
    27. }
    28. if (p*p==x) v.push_back(p);
    29. //gotowe
    30. //ewentualne sortowanie
    31. //sort(v.begin(),v.end());
    32. for (int i=0; i<v.size();i++)
    33. cout <<v[i]<<" ";
    34. //wypełnianie 2 rozwiązanie są posortowane
    35.  
    36. p=2;
    37. while (p*p<x)
    38. {
    39. if (x%p==0)
    40. {v1.push_back(p);
    41. v2.insert(v2.begin(),x/p);}
    42. p++;
    43. }
    44. if (p*p==x) v2.insert(v2.begin(),p);
    45.  
    46. //wypisanie dla 2 rozwiązania
    47. cout <<"\n";
    48. for (int i=0; i<v1.size();i++)
    49. cout <<v1[i]<<" ";
    50. for (int i=0;i<v2.size();i++)
    51. cout <<v2[i]<<" ";
    52. //scalenie wektorów do v1
    53. cout <<"\n";
    54. v1.insert(v1.end(),v2.begin(), v2.end());
    55. for (int i=0; i<v1.size();i++)
    56. cout <<v1[i]<<" ";
    57. }