#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define ff first
#define sd second
#define debug(x) cerr << #x << "----> " << x << endl;
//#pragma GCC optimize("unroll-loops")
//#pragma GCC optimize("Ofast")
//#pragma GCC optimize("O3")
const int mxN = 1e6 + 5;
ll n,cc = 0;
bitset<1000000000> vis;
vector<ll> ans;
void f(ll x, ll val = 0, ll last = 1e9){
if(!vis[val + x - 1]){
ans.pb(val + x - 1);
vis[val + x - 1] = true;
}
for(int i = 2; i <= min((ll)sqrtl(x), last); i++){
if(x % i == 0){
ll k = i;
f(x / k, val + k - 1, k);
k = x / i;
if(k <= last) f(x / k, val + k - 1, k);
}
}
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin >> n;
f(n);
sort(ans.begin(), ans.end());
cout << ans.size() << '\n';
for(auto it : ans) cout << it << ' ';
}
# | 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... |