#include <bits/stdc++.h>
using namespace std;
template <typename T, typename U>
inline void smin(T &a, const U &b) {
  if (a > b) a = b;
}
template <typename T, typename U>
inline void smax(T &a, const U &b) {
  if (a < b) a = b;
}
vector<pair<int, int> > vec;
vector<int> all, tmp;
int main() {
  int n;
  scanf("%d", &n);
  int N = n, sq = sqrt(N);
  for (int i = 2; i <= sq; i++)
    if (n % i == 0) {
      int num = 0;
      while (n % i == 0) {
        n /= i;
        num++;
      }
      vec.push_back(pair<int, int>(i, num));
    }
  if (n > 1) vec.push_back(pair<int, int>(n, 1));
  all.push_back(1);
  for (auto p : vec) {
    int u = p.first, num = p.second, val = u;
    tmp.clear();
    for (int i = num; i--; val *= u) {
      for (auto v : all) tmp.push_back(v * val);
    }
    for (auto v : tmp) all.push_back(v);
  }
  sort(all.begin(), all.end());
  for (int i = all.size(); i--;) {
    int u = all[i], num = N / u;
    long long ans = num + (long long)((long long)num * (num - 1) >> 1) * u;
    printf("%I64d ", ans);
  }
}
