top1编程
← 返回题目
题解

【基础】素数的最短距离

1 条题解

  • 0
    @ 2026-7-29 0:19:36
    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
        int t,n;
        bool a[1010]={1,1,0,0,1};
        for(int i=2;i<1005;i++)
            for(int j=2;j<=i&&i*j<1005;j++)
                a[i*j]=1;
        scanf("%d",&t);
        while(t--)
        {
            scanf("%d",&n);
            for(int i=0;;i++)
            {
                if(n-i>0&&a[n-i]==0)
                {
                    printf("%d&#92;n",n-i);
                     break;
                }
                if(n+i<=1000&&a[n+i]==0)
                {
                     printf("%d&#92;n",n+i);
                     break;
                }
            }
        }
    return 0;
    }
    
    • 1