func_code_string: #include <bits/stdc++.h>   using namespace std;   const int inf = 1e9;   const double eps = 1e-9;   const double INF = inf;   const double EPS = eps;   vector<long long> V;   int cmp(long long b, long double d, long long a) {     if (d > 2e18) return 1;     if (b > a) return 1;     if (b == a) return 0;     return -1;   }   int calc(long long n, long long p, long long k) {     long double d = (2.0 * k + 1.0) * (k + p - 1ll);     long long l = (2ll * k + 1) * (k + p - 1ll);     return cmp(l, d, n);   }   void solve(long long n, long long p) {     p = (1ll << p);     if (p - 1 > n) return;     long long l = 0, r = n + 1;     while (r - l > 1) {       long long m = (l + r) / 2;       (calc(n, p, m) <= 0) ? (l = m) : (r = m);     }     if (calc(n, p, l) == 0) V.push_back(p * (2ll * l + 1ll));   }   int main() {     long long n;     int i;     scanf( %I64d , &n);     for (i = 0; i < 60; i++) solve(n, i);     sort(V.begin(), V.end());     if (!V.size()) {       puts( -1 );       return 0;     }     for (i = 0; i < (int)V.size(); i++) printf( %I64d n , V[i]);     ;     return 0;   }   