#include<stdio.h>
#include<iostream>
#include<string.h>
#include<stdlib.h>
#include<vector>
#include<algorithm>
#include<math.h>
#include<string>
#include<set>
#include<queue>
#include<map>
using namespace std;
#define INF 0x7fffffff
//vector<int> f;
int f[100000];
int countt;
bool num[1000010];
int sf[1000010];//i这个数有几种素数因子
int jz[1000010][10];//i这个数有j种素数因子的个数
void init(){
countt=0;
memset(num,false,sizeof(num));
memset(sf,0,sizeof(sf));
memset(jz,0,sizeof(jz));
for(int i=2;i<=1000000;++i){
if(num[i]==false){
sf[i]=1;
for(int j=2;i*j<=1000000;++j){
num[j*i]=true;
sf[j*i]++;
}
}
}
jz[1][1]=1;
for(int i=2;i<=1000000;++i){
for(int j=1;j<=9;++j)
jz[i][j]=jz[i-1][j];
jz[i][sf[i]]++;
}
}
int main(){
//freopen("G://test.txt","r",stdin);
int t,n,m;
init();
scanf("%d",&t);
while(t--){
int l,r;
scanf("%d%d",&l,&r);
int haha[10];
for(int i=1;i<=9;++i){
haha[i]=jz[r][i]-jz[l][i];
}
haha[sf[l]]++;
int maxn=1;
for(int i=9;i>=1;--i){
if(haha[i]>=2){
if(i>maxn)
maxn=i;
}
}
if(maxn<2)
if(haha[4]>=1&&haha[2]>=1)
maxn=2;
printf("%d\n",maxn);
}
return 0;
}
2015 Multi-University Training Contest 3 1002 RGCDQ(hdu5317)
最新推荐文章于 2018-08-01 20:16:28 发布