#include <bits/stdc++.h>
typedef long long ll;
typedef long double ld;
# define pb push_back
# define FAST_CODE ios_base::sync_with_stdio(false); cin.tie(NULL);
using namespace std;
ll triF(ll n) {
return (sqrt(2*n + ld(0.25)) - ld(0.5));
}
ll calc(ll n) {
if(n % 2 == 0) {
return ((n/2)*(n+1));
}
return ((n+1)/2)*n;
}
ll calc1(ll n) {
if(n % 2 == 0) {
return (n/2)*(n-1);
}
return ((n-1)/2)*n;
}
ll nearest(ll n) {
ll k = ld(ld(1) + ld(sqrt(8*n + ld(1))))/ld(2);
return calc1(k);
}
int main()
{
FAST_CODE;
#ifndef ONLINE_JUDGE
freopen("input.txt","r", stdin);
freopen("output.txt","w", stdout);
#endif
ll t;
cin>>t;
for(ll i=1; i<=t; ++i) {
ll g;
cin>>g;
ll sumN = nearest(g);
ll n = triF(g);
ll ans = 0;
for(ll i=n; i>=0; i--) {
if((g - calc(i))%(i+1) == 0) {
ans++;
if((g - calc(i))/(i+1) == 0) {
ans --;
}
}
}
cout<<"case #"<<i<<": "<<ans<<"\n";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnR5cGVkZWYgbG9uZyBsb25nIGxsOwp0eXBlZGVmIGxvbmcgZG91YmxlIGxkOwojIGRlZmluZSBwYiBwdXNoX2JhY2sKIyBkZWZpbmUgRkFTVF9DT0RFIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyBjaW4udGllKE5VTEwpOwp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKbGwgdHJpRihsbCBuKSB7CglyZXR1cm4gKHNxcnQoMipuICsgbGQoMC4yNSkpIC0gbGQoMC41KSk7Cn0KCmxsIGNhbGMobGwgbikgewoJaWYobiAlIDIgPT0gMCkgewoJCXJldHVybiAoKG4vMikqKG4rMSkpOwoJfQoKCXJldHVybiAoKG4rMSkvMikqbjsKfQoKbGwgY2FsYzEobGwgbikgewoJaWYobiAlIDIgPT0gMCkgewoJCXJldHVybiAobi8yKSoobi0xKTsKCX0KCQoJcmV0dXJuICgobi0xKS8yKSpuOwp9CgpsbCBuZWFyZXN0KGxsIG4pIHsKCWxsIGsgPSBsZChsZCgxKSArIGxkKHNxcnQoOCpuICsgbGQoMSkpKSkvbGQoMik7CglyZXR1cm4gY2FsYzEoayk7Cn0KCmludCBtYWluKCkgCnsKCUZBU1RfQ09ERTsKCSNpZm5kZWYgT05MSU5FX0pVREdFCgkJZnJlb3BlbigiaW5wdXQudHh0IiwiciIsIHN0ZGluKTsKCQlmcmVvcGVuKCJvdXRwdXQudHh0IiwidyIsIHN0ZG91dCk7CgkjZW5kaWYKCglsbCB0OwoJY2luPj50OwoJZm9yKGxsIGk9MTsgaTw9dDsgKytpKSB7CgkJbGwgZzsKCQljaW4+Pmc7CgkJbGwgc3VtTiA9IG5lYXJlc3QoZyk7CgkJbGwgbiA9IHRyaUYoZyk7CgkJbGwgYW5zID0gMDsKCQlmb3IobGwgaT1uOyBpPj0wOyBpLS0pIHsKCQkJaWYoKGcgLSBjYWxjKGkpKSUoaSsxKSA9PSAwKSB7CgkJCQlhbnMrKzsKCQkJCWlmKChnIC0gY2FsYyhpKSkvKGkrMSkgPT0gMCkgewoJCQkJCWFucyAtLTsKCQkJCX0KCQkJfQoJCX0KCQljb3V0PDwiY2FzZSAjIjw8aTw8IjogIjw8YW5zPDwiXG4iOwoKCX0KCXJldHVybiAwOwp9