
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cstdlib>
#include<algorithm>
using namespace std;
const int maxn=100005;
int n,cnt,k;
bool is[maxn];
long long pre[maxn];
long long prime[maxn];
long long miu[maxn];
void linear_shaker()
{
miu[1]=1;
int t;
for(int i=2;i<maxn;i++)
{
if(!is[i])
{
miu[i]=-1;
prime[++cnt]=i;
}
for(int j=1;j<=cnt&&(t=prime[j]*i)<maxn;j++)
{
is[t]=true;
if(i%prime[j]==0)
{
miu[t]=0;
break;
}
miu[t]=-miu[i];
}
}
for(int i=1;i<maxn;i++)
pre[i]=pre[i-1]+miu[i];
}
long long cal(int a,int b)
{
long long res=0,last;
a/=k;b/=k;
for(int i=1;i<=min(a,b);i=last+1)
{
last=min(b/(b/i),a/(a/i));
res+=(pre[last]-pre[i-1])*(a/last)*(b/last);
}
return res;
}
int main()
{
linear_shaker();
scanf("%d",&n);
while(n--)
{
int a,b,c,d;
scanf("%d%d%d%d%d",&a,&b,&c,&d,&k);
printf("%lld\n",cal(b,d)-cal(a-1,d)-cal(b,c-1)+cal(a-1,c-1));
}
}