3 条题解

  • 0
    @ 2025-10-4 21:01:32
    #include<stdio.h>
    #include<stdlib.h>
    int su[200],cnt=0;
    
    void sushu()//1000内
    {
        for(int i=2;i<=1000;i++)
       {
            int m=1;
            for(int j=2;j<i;j++)
            {
                if(i%j==0){m=0;break;}
            }
            if(m==0){continue;}
            if(m==1){su[cnt]=i;cnt++;}
       }
    }
    
    int main()
    {
        sushu();
        int N;
        scanf("%d",&N);
        for(int i=1;i<=N;i++)
        {
            int x;
            scanf("%d",&x);
            int min=1000,y=0;
            for(int j=0;j<200;j++)
            {
                int c=(su[j]-x);
                if(abs(c)<min)
                {
                    if((su[j+1]-x)==(x-su[j])){min=abs(c);y=j+1;}
                    else{min=abs(c);y=j;}
                }
            }
            printf("%d\n",su[y]);
        }
        return 0;
    }
    

信息

ID
179
时间
3000ms
内存
128MiB
难度
6
标签
(无)
递交数
702
已通过
201
上传者