#include <bits/stdc++.h>
using namespace std;
int n;
int nrd;
int divi[100000];
set<int>rasp;
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)
rasp.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(){
cout<<rasp.size()<<'\n';
for(auto el : rasp)
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... |