Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # include <iostream>
- # include <algorithm>
- using namespace std;
- int D[205];
- short nr,da,Sol[205];
- unsigned long long S;
- inline void divi(int x)
- {
- int i=0,d=2;
- while (x>1)
- {
- if (d*d==x)
- {
- D[i++]=d;
- x=1;
- }
- else
- {
- if (x%d==0)
- {
- D[i++]=d;
- D[i++]=x/d;
- }
- d++;
- }
- if (d*d>x)
- x=1;
- }
- nr=i;
- sort(D,D+nr);
- }
- inline void back(int poz, int di, unsigned long long s)
- {
- if (s==S)
- {
- da=1;
- for (int i=0;i<poz;i++)
- cout<<D[Sol[i]]<<' ';
- cout<<'\n';
- }
- else
- {
- unsigned long long p;
- short co=1;
- for (int i=di; co && i<nr; i++)
- {
- p=s*D[i];
- if (p<=S)
- {
- Sol[poz]=i;
- back(poz+1, i+1, p);
- }
- else
- co=0;
- }
- }
- }
- int main (void)
- {
- cin>>S;
- divi(S);
- back(0,0,1);
- if (!da)
- cout<<"NU EXISTA";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment