void init() { for (int i = 2 ; i <= maxn ; i ++) { if (!isprime[i]) { for (int j = i ; j <= maxn ; j += i) { isprime[j] = true; ft[j].push_back(i); } } }
}
ll solve(int x,int sta,ll n) { int pos = 0; ll temp = 1; while (sta) { if (sta&1) temp *= ft[x][pos]; pos ++; sta >>= 1; }
return n/temp; }
int main(){ init(); int T,t=1; scanf("%d",&T); while (T--) { scanf("%lld%lld%lld%lld%lld",&a,&b,&c,&d,&k); printf("Case %d: ",t++); if (k==0) { printf("0\n"); continue; } b/=k;d/=k;
if (b*d==0) printf("0\n"); else { if (b>d) swap(b,d); ll ans = 0; for (int i = 1 ; i <= d ; i ++) { ans += min(i*1LL,b); for (int j = 1 ; j < (1<<ft[i].size()); j ++) { ll temp = solve(i,j,min(i*1LL,b));int cp = j,cnt = 0; //printf("cp = %d\t",cp); while (cp) { cp -= cp&(-cp); cnt++; } //printf("cnt = %d\n",cnt); if (cnt&1) ans -= temp; else ans += temp; } } printf("%lld\n",ans);