//#include #include using namespace std; //using namespace atcoder; using ll = long long; #define all(A) A.begin(),A.end() using vll = vector; #define rep(i, n) for (long long i = 0; i < (long long)(n); i++) using Graph = vector>; Graph G; vll dist; vector seen; ll gcd(ll(a), ll(b)) { ll c = a; while (a % b != 0) { c = a % b; a = b; b = c; } return b; } int main() { ll T; cin>>T; vll P={2,3,5,7,11,13,17,19,23,29,31}; ll n=P.size(); rep(i,T){ ll N; cin>>N; rep(i,31){ ll M=N*(i+2); ll an=1; ll am=1; ll NN=N; rep(k,n){ ll y=0; while(M%P[k]==0){ y++; M/=P[k]; } am*=(y+1); } rep(k,n){ ll y=0; while(NN%P[k]==0){ y++; NN/=P[k]; } an*=(y+1); } if(am==an*2){ cout<