#include using namespace std; long long MOD; long long modpow(long long a, long long b){ long long ans = 1; while (b > 0){ if (b % 2 == 1){ ans *= a; ans %= MOD; } a *= a; a %= MOD; b /= 2; } return ans; } int euler_phi(int N){ vector pf; int ans = N; for (int j = 2; j * j <= N; j++){ if (N % j == 0){ ans /= j; ans *= j - 1; while (N % j == 0){ N /= j; } } } if (N != 1){ ans /= N; ans *= N - 1; } return ans; } int main(){ int T; cin >> T; for (int i = 0; i < T; i++){ int N; cin >> N; int M = N * 2 - 1; MOD = M; int F = euler_phi(M); vector fact; for (int j = 1; j * j <= F; j++){ if (F % j == 0){ fact.push_back(j); if (j * j < F){ fact.push_back(F / j); } } } sort(fact.begin(), fact.end()); long long ans; for (int x : fact){ if (modpow(2, x) == 1){ ans = x; break; } } cout << ans << endl; } }