#include<cstdio>
using namespace std;
typedef long long LL;
const int maxn=1000010;
LL isp[78500],pre_p;
bool np[maxn]={true,true};
void prime(){
for(int i=2;i<maxn;++i){
if(!np[i]) isp[pre_p++]=i;
for(int j=0;j<pre_p&&i*isp[j]<maxn;++j){
np[i*isp[j]]=true;
if(!(i%isp[j])) break;
}
}
return;
}
LL solve(LL n){
LL cnt=0;
for(int i=0;i<pre_p;++i){
LL cur=isp[i]*isp[i];
while(cur<n) cur*=isp[i],++cnt;
}
return cnt;
}
int main()
{
prime();
int t;
scanf("%d",&t);
while(t--){
LL l,r;
scanf("%lld%lld",&l,&r);
printf("%lld\n",solve(r+1)-solve(l));
}
return 0;
}
UVa10539 - Almost Prime Numbers
最新推荐文章于 2022-10-09 23:28:27 发布