题解 | #查找组成一个偶数最接近的两个素数#

查找组成一个偶数最接近的两个素数

https://www.nowcoder.com/practice/f8538f9ae3f1484fb137789dec6eedb9

#include <stdio.h>

int main() {
    int n;
    int a,i,j,flag,min;
    int x[1000]={0};
    int y[1000]={0};
    int top;
    int pos;
    a=2;
    flag=0;
    top=0;
    pos=0;
    min=0;
    while(scanf("%d",&n)==1)
    {
        while(a<n)
        {
            i=2;
            //求素数
            while(i<a)
            {
                if(a%i==0)
                {
                    flag=1;
                    break;
                }
                i++;
            }
            //将素数存入数组
            if(flag==0)
            {
                x[top++]=a;
                
            }
            flag=0;
            a++;
        }
        //将相加等于n的素数组存放
        for(j=0;j<top;j++)
        {
            for(i=j;i<top;i++)
            {
                if(x[j]+x[i]==n)
                {
                    y[pos++]=x[j];
                    y[pos++]=x[i];
                }
            }
        }
        j=0;
        min=1000;
        //输出差值最小的素数对
        while(j<pos-1)
        {
            if(y[j+1]-y[j]<min)
            {
                min=y[j+1]-y[j];
                
            }
            j+=2;
        }
        i=0;
        while(i<pos-1)
        {
            if(y[i+1]-y[i]==min)
            {
                printf("%d\n%d",y[i],y[i+1]);
            }
            i+=2;
        }
        
    }
    return 0;
}

全部评论

相关推荐

oppo 应用软开 22*15+0.5*12
拿到了ssp完美:真的坎坷,但是你至少拿到这么多offer了!
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务