#include <bits/stdc++.h>
using namespace std;
template <class T>
inline void amin(T &x, const T &y) {
  if (y < x) x = y;
}
template <class T>
inline void amax(T &x, const T &y) {
  if (x < y) x = y;
}
template <class Iter>
void rprintf(const char *fmt, Iter begin, Iter end) {
  for (bool sp = 0; begin != end; ++begin) {
    if (sp)
      putchar(' ');
    else
      sp = true;
    printf(fmt, *begin);
  }
  putchar('\n');
}
int N;
vector<long long> ans;
void go(int k) {
  long long t = N / k;
  ans.push_back(t * (t - 1) / 2 * k + t);
}
void MAIN() {
  scanf("%d", &N);
  for (int i = 1; i * i <= N; i++) {
    if (N % i == 0) {
      go(i);
      if (i * i < N) go(N / i);
    }
  }
  sort(ans.begin(), ans.end());
  ans.erase(unique(ans.begin(), ans.end()), ans.end());
  rprintf("%lld", ans.begin(), ans.end());
}
int main() {
  int TC = 1;
  for (int tc = 0, tc_len = (TC); tc < tc_len; ++tc) MAIN();
  return 0;
}
