#include <iostream>
#include <algorithm>
#include <math.h>
using namespace std;
int divisors[673];
int *__divisors = divisors;
int answer[10000000];
int *__answer = answer;
void recur(int n, int s, int it) {
*__answer++ = s + n - 1;
for (;; ++it) {
int d = divisors[it];
if (d * d > n) break;
if (n % d) continue;
recur(n / d, s + d - 1, it);
}
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
// freopen("input.txt", "r", stdin);
int n;
cin >> n;
if (n == 1) {
cout << "1\n0";
return 0;
}
for (int d = 2; d * d <= n; d++) {
if (n % d == 0) {
*__divisors++ = d;
}
}
*__divisors++ = sqrt(n) + 1;
recur(n, 0, 0);
sort(answer, __answer);
int card = unique(answer, __answer) - answer;
cout << card << '\n';
for (int i = 0; i < card; i++) {
cout << answer[i] << ' ';
}
return 0;
}