#include <bits/stdc++.h>
using namespace std;
int n;
int nrd;
int divi[100000];
unordered_set<int>ans;
void get_divis(){
cin>>n;
int i;
for(i=1;i*i<n;++i)
if(n%i==0){
divi[++nrd]=i;
divi[++nrd]=n/i;
}
if(i*i==n)
divi[++nrd]=i;
sort(divi+1,divi+nrd+1);
}
void myback(int prod,int sum,int id){
if(prod==n)
ans.insert(sum);
else{
int i;
for(i=id;i<=nrd;++i)
if(1LL*prod*divi[i]<=n && n%(prod*divi[i])==0)
myback(prod*divi[i],sum+divi[i]-1,i);
}
}
void write(){
vector<int>vans;
for(auto el : ans)
vans.push_back(el);
sort(vans.begin(),vans.end());
cout<<vans.size()<<'\n';
for(auto el : vans)
cout<<el<<' ';
}
int main()
{
get_divis();
myback(1,0,2);
write();
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |