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

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

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

       给定的数为n,从中间的数n/2开始,依次减1,判断该数i是否为素数。同时判断n-i是否是素数。当第一次遇到两个数都为素数的情况时,这两个数即为所求数。

#include<stdio.h>
#include<math.h>
int main(){
    int n;
    while(scanf("%d",&n)!=EOF){
        int k=n/2;
        int flag1,flag2;   //flag=1表示i或n-i为素数
        for(int i=k;i>0;i--){
            flag1=flag2=0;
            int j;
            for(j=2;j<=(int)sqrt(i);j++){  //判断i是否为素数
                if(i%j==0)
                    break;
                }
            if(j>(int)sqrt(i))     //此句不能写在for循环内
                   flag1=1;
             for(j=2;j<=(int)sqrt(n-i);j++){  //判断n-i是否为素数
                 if((n-i)%j==0)
                      break;
             }
            if(j>(int)sqrt(n-i))
                     flag2=1;
            if(flag1*flag2){
                 printf("%d\n%d\n",i,n-i);
             break;
             }
        }
    }
    return 0;
}
全部评论

相关推荐

爱吃肉的伊登在写日记:好棒,27届简历能做成这个样子,但是第一个项目感觉cover住难度还是不小的,特别是二面的时候肯定要对分布式系统设计这一块儿有高出正常面试者的水平才行
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

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