#include<bits/stdc++.h>
using namespace std;
#define int long long
#define inf 5e18
#define nl '\n'
unordered_map<int, vector<int>> dp;
vector<int> rec(int n){
if(!dp[n].empty()) return dp[n];
set<int> st;
for(int i=2; i*i <= n; i++){
if(n % i != 0) continue;
auto v = rec(n/i);
for(int x : v) st.insert(x + i-1);
if(n/i == i) continue;
v = rec(i);
for(int x : v) st.insert(x + n/i-1);
}
st.insert(n-1);
vector<int> v;
for(int x : st) v.push_back(x);
return dp[n] = v;
}
inline void solve(){
int n;
cin>>n;
auto v = rec(n);
cout<<v.size()<<nl;
for(int x : v) cout<<x<<" ";
}
signed main(){
ios_base::sync_with_stdio(0);
cin.tie(NULL);cout.tie(NULL);
int t = 1;
//cin>>t;
while(t--) solve();
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... |