//Można zawsze inaczej - to zadanie dla Ciebie
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
/* przyśpieszenie strumieni iostream
Wywołać std::ios_base::sync_with_stdio(false); przed jakąkolwiek operacją we/wy;
Używać '\n' zamiast std::endl;
Wywołać std::cin.tie(nullptr); przed przemieszanymi operacjami we/wy.
*/
int main() {
ios_base::sync_with_stdio(false);
//do pierwszego rozwiązania
vector <int> v;
//do drugiego rozwiązania
vector <int> v1; //pierwszy podzielnik
vector <int> v2; //podzielnik do pary
int x=225;
int p=2;
//wypełniam 1 rozwiązanie
while (p*p<x)
{
if (x%p==0)
{v.push_back(p);
v.push_back(x/p);}
p++;
}
if (p*p==x) v.push_back(p);
//gotowe
//ewentualne sortowanie
//sort(v.begin(),v.end());
for (int i=0; i<v.size();i++)
cout <<v[i]<<" ";
//wypełnianie 2 rozwiązanie są posortowane
p=2;
while (p*p<x)
{
if (x%p==0)
{v1.push_back(p);
v2.insert(v2.begin(),x/p);}
p++;
}
if (p*p==x) v2.insert(v2.begin(),p);
//wypisanie dla 2 rozwiązania
cout <<"\n";
for (int i=0; i<v1.size();i++)
cout <<v1[i]<<" ";
for (int i=0;i<v2.size();i++)
cout <<v2[i]<<" ";
//scalenie wektorów do v1
cout <<"\n";
v1.insert(v1.end(),v2.begin(), v2.end());
for (int i=0; i<v1.size();i++)
cout <<v1[i]<<" ";
}