hdu5317 RGCDQ(15多校第三場1002)(大暴力)

//hdu 5317
//預處理+暴力
#include<cstdio>
#include<algorithm>
using namespace::std;

typedef long long LL;
const int N = 1000005;

int F[N],num[N][10];
void init(){
    F[0]=F[1]=0;
    for(int i=2;i<N;i++){
        if(F[i])continue;
        for(int j=1;j*i<N;j++){
            F[i*j]++;
        }
    }
    for(int i=2;i<N;i++){
        for(int j=1;j<10;j++)
        {
            num[i][j]=num[i-1][j];
        }
        num[i][F[i]]++;
    }
}
//
int B[10];
int gcd(int a,int b){
    if(!b)return a;
    return gcd(b,a%b);
}
int main(){
    int T,l,r;
    init();
    scanf("%d",&T);
    while(T--){
        scanf("%d%d",&l,&r);
        int ans=0;
        for(int i=1;i<10;i++){
            B[i]=num[r][i]-num[l-1][i];
            if(num[r][i]-num[l-1][i]>1){
                ans=i;
            }
        }
        if(ans!=0)   printf("%d\n",ans);
        else if((B[2]>0&&B[4]>0)||(B[2]>0&&B[6]>0)||(B[6]>0&&B[4]>0))
            printf("2\n");
        else if(B[3]>0&&B[6]>0)printf("3\n");
        else printf("1\n");
    }
    return 0;
}

發佈了124 篇原創文章 · 獲贊 46 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章