#include <bits/stdc++.h>
using namespace std;
void mylist(unordered_set<long long int> &A) {
  long long int k = 2;
  long long res = pow(2, k) - 1;
  A.insert(res);
  while (res < 1000000000) {
    k++;
    res = pow(2, k) - 1;
    A.insert(res);
  }
}
int main() {
  int i, t;
  cin >> t;
  long long int n;
  unordered_set<long long int> s;
  mylist(s);
  for (i = 0; i < t; i++) {
    cin >> n;
    for (auto it = s.begin(); it != s.end(); it++) {
      if (n % (*it) == 0) {
        cout << n / (*it) << endl;
        break;
      }
    }
  }
  return 0;
}
