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

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

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

//思路:将输入数字除以2(此时偶数/2得到两个数的差为0,奇数/2得到两个数差为1),从此数开始向两端判断是否为素数
#include <stdio.h>
#include<math.h>
//素数判断函数
int Is(int k)
{
    int i=0;
    for(i=2;i<=sqrt(k);i++)
    {
        if((k%i)==0)
        {
            return 0;
        }
    }
    return 1;//是素数返回1,不是返回0
}

int main() 
{
    int n=0,p=0,q=0;
    scanf("%d",&n);
    p=n/2;
    q=n-p;
    while((p>1)&&(q==(n-p)))//注意:p最小为2
    {
        if(Is(p)&&Is(q))//都是素数就打印,结束循环
        {
            printf("%d\n%d",p,q);
            break;
        }
        else//不是素数,p-1,q+1,继续判断
        {
            p--;
            q++;
        }
    }
    return 0;
}

全部评论

相关推荐

评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务