#include <bits/stdc++.h>
using namespace std;
void _main();
int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  _main();
}
const int inf = INT_MAX / 2;
const long long infl = 1LL << 60;
template <class T>
bool chmax(T &a, const T &b) {
  if (a < b) {
    a = b;
    return 1;
  }
  return 0;
}
template <class T>
bool chmin(T &a, const T &b) {
  if (b < a) {
    a = b;
    return 1;
  }
  return 0;
}
int umekomi[27]{0,      0,       1,      1,       5,       1,       21,
                1,      85,      73,     341,     89,      1365,    1,
                5461,   4681,    21845,  1,       87381,   1,       349525,
                299593, 1398101, 178481, 5592405, 1082401, 22369621};
int Q;
void _main() {
  cin >> Q;
  for (int q = 0; q < Q; q++) {
    int a;
    cin >> a;
    int len = 0, cnt = 0;
    int b = a;
    while (0 < b) {
      len++;
      if (b & 1 == 1) cnt++;
      b /= 2;
    }
    int ans = 0;
    if (len == cnt)
      ans = umekomi[len];
    else {
      for (int i = 0; i < len; i++) ans = ans * 2 + 1;
    }
    printf("%d\n", ans);
  }
}
