//Nikoloz Kochashvili
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define eb emplace_back
#define mp make_pair
#define pb push_back
#define pp pop_back
#define endl '\n'
#define ff first
#define ss second
#define stop exit(0)
#define sz(x) (int)x.size()
#define pause system("pause")
#define all(x) (x).begin(), (x).end()
#define deb(x) cout << #x << "-" << x << endl
typedef char chr;
typedef string str;
typedef long long ll;
typedef vector<int> vii;
typedef pair<int, int> pii;
const long long INF = LLONG_MAX;
const int inf = INT_MAX;
const int mod = 998244353;
const int MOD = 1e9 + 7;
const int dx[] = {0, 0, -1, 1};
const int dy[] = {-1, 1, 0, 0};
const double PI = 2 * acos(0.0);
const int N = 2e5 + 5;
int n;
set <int> ans;
void solve(int x, int sum, int last) {
// cout <<x << " " << sum << " " << last << endl;
if (x == 1) {
ans.insert(sum);
return;
}
for (int i = 2; (i * i <= x) && (i <= last); i++) {
if (x % i != 0) continue;
if (i <= last) solve(x / i, sum + i - 1, i);
int j = x / i;
if (j != i && j <= last) solve(x / j, sum + j - 1, j);
}
if (x <= last) solve(1,sum+x-1,x);
}
inline void test_case() {
cin >> n;
solve(n,0,inf);
cout << sz(ans) << endl;
for (auto it:ans) {
cout << it << " ";
}
cout << endl;
}
signed main() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
srand(chrono::steady_clock::now().time_since_epoch().count());
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
int T = 1;
// cin >> T;
while (T--) {
test_case();
}
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... |