9 条题解

  • 2
    @ 2025-12-5 0:03:57
    #include <stdio.h>
    int prime[1000001];
    void ajs(){
        for(int i=2;i<1000002;i++){
            prime[i]=1;
        }
        for(int i=2;i<=1000;i++){
            if(prime[i]){
                for(int j=i*i;j<1000001;j+=i){
                    prime[j]=0;
                }
            }
        }
    }
    int main(){
        ajs();
        int n;
        scanf("%d",&n);
        while(n--){
            int m,cnt=0;
            scanf("%d",&m);
            for(int i=2;i+2<=m;i++){
                if((prime[i]==1&&prime[i+1]==1)||(prime[i]==1&&prime[i+2]==1)){
                    cnt++;
                }
            }
            if(m==3)printf("1\n");
            else printf("%d\n",cnt);
        }
        return 0;
    }
    

    信息

    ID
    128
    时间
    3000ms
    内存
    128MiB
    难度
    8
    标签
    (无)
    递交数
    1919
    已通过
    267
    上传者