#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstdlib>
#include<cstring>
using namespace std;
#define LL long long
LL read()
{
LL f=1,x=0;
char ch=getchar();
for (;ch<'0'||ch>'9';ch=getchar()) f=ch=='-'?-1:1;
for (;ch>='0'&&ch<='9';ch=getchar()) x*=10,x+=ch-'0';
return f*x;
}
const int N=50010;
int n,cnt,p[N],mu[N],np[N],s[N];
inline LL cal(int a,int b)
{
LL rec=0;
for (int i=1,pos;i<=a&&i<=b;i=pos+1)
{
pos=min(a/(a/i),b/(b/i));
rec+=(LL)(s[pos]-s[i-1])*(a/i)*(b/i);
}
return rec;
}
int main()
{
mu[1]=1;
for (int i=2;i<N;i++)
{
if (!np[i]) mu[i]=-1,p[++cnt]=i;
for (int j=1;j<=cnt&&i*p[j]<N;j++)
{
int t=i*p[j];
np[t]=1;
if (i%p[j]==0) {mu[t]=0;break;}
mu[t]=-mu[i];
}
}
for (int i=1;i<N;i++) s[i]=s[i-1]+mu[i];
n=read();
while(n--)
{
int a=read(),b=read(),c=read(),d=read(),k=read();
a--;c--;
b/=k;d/=k;a/=k;c/=k;
LL ans=cal(b,d)-cal(a,d)-cal(b,c)+cal(a,c);
printf("%lld\n",ans);
}
return 0;
}
bzoj2301
最新推荐文章于 2020-07-15 10:40:48 发布