您的位置:首页 > 大数据 > 人工智能

2015 Multi-University Training Contest 3 1002 RGCDQ(hdu5317)

2015-07-29 09:36 513 查看
#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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: