#include <bits/stdc++.h>
#define FOR(i,a,b) for(long long i=a;i<=b;i++)
#define st first
#define nd second
#define checkbit(i,x) (((x)>>(i))&1)
#define ALL(a) (a).begin(), (a).end()
using namespace std;
const long long MOD = 1e9 + 7;
const int maxn = 1e3 + 5;
const long long INF = 1e18;
int n, m, q;
bool check ( int x ) {
long long s = 0;
int cnt_c = 0;
int cnt_l = 0;
for ( int i = 1; i <= x; i++ ) {
if ( x % i == 0 ) {
s += i;
if ( i % 2 != 0 ) cnt_l++;
else cnt_c++;
}
}
if ( s % 2 != 0 && cnt_c == cnt_l ) return true;
else return false;
}
namespace sub12 {
void solve ( long long x ) {
long long cnt = 0;
for ( int i = 1; i <= x; i++ ) {
if ( x % i == 0 && check ( i ) ){
++cnt;
}
}
cout << cnt << "\n";
}
}
namespace sub3 {
void solve ( long long x ) {
if ( x % 2 != 0 ) {
cout << 0 << "\n";
return;
}
long long cnt = 0;
for ( long long i = 1; i * i <= x; i++ ) {
if ( x % ( 2 * i * i ) == 0 && ( i * i ) % 2 != 0 ){
++cnt;
}
}
cout << cnt << "\n";
}
}
void solve() {
cin >> q;
while ( q-- ) {
long long x;
cin >> x;
if ( x <= 1e6 ) sub12::solve ( x );
else if ( x > 1e6 && x <= 1e12 ) sub3::solve ( x );
else if ( x > 1e12 && x <= 1e18 ) {
long long k2 = 0;
while ( x % 2 == 0 ) {
k2++;
x /= 2;
}
if ( k2 == 0 ) {
cout << 0 << "\n";
continue;
}
long long ans = 1;
for ( long long i = 3; i * i <= x; i += 2 ) {
if ( x % i == 0 ) {
long long ki = 0;
while ( x % i == 0 ) {
ki++;
x /= i;
}
ans *= ( ki / 2 + 1 );
}
}
cout << ans << "\n";
}
}
}
int main() {
freopen ( "test.inp", "r", stdin );
freopen ( "test.out", "w", stdout );
ios_base::sync_with_stdio ( false );
cin.tie ( NULL );
solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgRk9SKGksYSxiKSBmb3IobG9uZyBsb25nIGk9YTtpPD1iO2krKykKI2RlZmluZSBzdCBmaXJzdAojZGVmaW5lIG5kIHNlY29uZAojZGVmaW5lIGNoZWNrYml0KGkseCkgKCgoeCk+PihpKSkmMSkKI2RlZmluZSBBTEwoYSkgKGEpLmJlZ2luKCksIChhKS5lbmQoKQp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjb25zdCBsb25nIGxvbmcgTU9EID0gMWU5ICsgNzsKY29uc3QgaW50IG1heG4gPSAxZTMgKyA1Owpjb25zdCBsb25nIGxvbmcgSU5GID0gMWUxODsKaW50IG4sIG0sIHE7CmJvb2wgY2hlY2sgKCBpbnQgeCApIHsKICAgIGxvbmcgbG9uZyBzID0gMDsKICAgIGludCBjbnRfYyA9IDA7CiAgICBpbnQgY250X2wgPSAwOwogICAgZm9yICggaW50IGkgPSAxOyBpIDw9IHg7IGkrKyApIHsKICAgICAgICBpZiAoIHggJSBpID09IDAgKSB7CiAgICAgICAgICAgIHMgKz0gaTsKICAgICAgICAgICAgaWYgKCBpICUgMiAhPSAwICkgY250X2wrKzsKICAgICAgICAgICAgZWxzZSBjbnRfYysrOwogICAgICAgIH0KICAgIH0KICAgIGlmICggcyAlIDIgIT0gMCAmJiBjbnRfYyA9PSBjbnRfbCApIHJldHVybiB0cnVlOwogICAgZWxzZSByZXR1cm4gZmFsc2U7Cn0KbmFtZXNwYWNlIHN1YjEyIHsKdm9pZCBzb2x2ZSAoIGxvbmcgbG9uZyB4ICkgewogICAgbG9uZyBsb25nIGNudCA9IDA7CiAgICBmb3IgKCBpbnQgaSA9IDE7IGkgPD0geDsgaSsrICkgewogICAgICAgIGlmICggeCAlIGkgPT0gMCAmJiBjaGVjayAoIGkgKSApewogICAgICAgICAgICArK2NudDsKICAgICAgICB9CiAgICB9CiAgICBjb3V0IDw8IGNudCA8PCAiXG4iOwp9Cn0KbmFtZXNwYWNlIHN1YjMgewp2b2lkIHNvbHZlICggbG9uZyBsb25nIHggKSB7CiAgICBpZiAoIHggJSAyICE9IDAgKSB7CiAgICAgICAgY291dCA8PCAwIDw8ICJcbiI7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgbG9uZyBsb25nIGNudCA9IDA7CiAgICBmb3IgKCBsb25nIGxvbmcgaSA9IDE7IGkgKiBpIDw9IHg7IGkrKyApIHsKICAgICAgICBpZiAoIHggJSAoIDIgKiBpICogaSApID09IDAgJiYgKCBpICogaSApICUgMiAhPSAwICApewogICAgICAgICAgICArK2NudDsKICAgICAgICB9CiAgICB9CiAgICBjb3V0IDw8IGNudCA8PCAiXG4iOwp9Cn0Kdm9pZCBzb2x2ZSgpIHsKICAgIGNpbiA+PiBxOwogICAgd2hpbGUgKCBxLS0gKSB7CiAgICAgICAgbG9uZyBsb25nIHg7CiAgICAgICAgY2luID4+IHg7CiAgICAgICAgaWYgKCB4IDw9IDFlNiApIHN1YjEyOjpzb2x2ZSAoIHggKTsKICAgICAgICBlbHNlIGlmICggeCA+IDFlNiAmJiB4IDw9IDFlMTIgKSBzdWIzOjpzb2x2ZSAoIHggKTsKICAgICAgICBlbHNlIGlmICggeCA+IDFlMTIgJiYgeCA8PSAxZTE4ICkgewogICAgICAgICAgICBsb25nIGxvbmcgazIgPSAwOwogICAgICAgICAgICB3aGlsZSAoIHggJSAyID09IDAgKSB7CiAgICAgICAgICAgICAgICBrMisrOwogICAgICAgICAgICAgICAgeCAvPSAyOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICggazIgPT0gMCApIHsKICAgICAgICAgICAgICAgIGNvdXQgPDwgMCA8PCAiXG4iOwogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbG9uZyBsb25nIGFucyA9IDE7CiAgICAgICAgICAgIGZvciAoIGxvbmcgbG9uZyBpID0gMzsgaSAqIGkgPD0geDsgaSArPSAyICkgewogICAgICAgICAgICAgICAgaWYgKCB4ICUgaSA9PSAwICkgewogICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBraSA9IDA7CiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCB4ICUgaSA9PSAwICkgewogICAgICAgICAgICAgICAgICAgICAgICBraSsrOwogICAgICAgICAgICAgICAgICAgICAgICB4IC89IGk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGFucyAqPSAoIGtpIC8gMiArIDEgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBjb3V0IDw8IGFucyA8PCAiXG4iOwogICAgICAgIH0KICAgIH0KfQppbnQgbWFpbigpIHsKICAgIGZyZW9wZW4gKCAidGVzdC5pbnAiLCAiciIsIHN0ZGluICk7CiAgICBmcmVvcGVuICggInRlc3Qub3V0IiwgInciLCBzdGRvdXQgKTsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8gKCBmYWxzZSApOwogICAgY2luLnRpZSAoIE5VTEwgKTsKICAgIHNvbHZlKCk7CiAgICByZXR1cm4gMDsKfQo=