题解 | #查找组成一个偶数最接近的两个素数# 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;
}
全部评论

相关推荐

01-27 15:41
门头沟学院 Java
想躺平的菜鸡1枚:我项目比你难、学历比你好、还有SCI论文,投java都被拒一大片,现在基本上都要问点agent开发
软件开发投递记录
点赞 评论 收藏
分享
01-04 11:28
已编辑
广州华立学院 Java
程序员花海:实习内容写的看起来太偏向于技术了 要结合业务 很多同学搞反了 其实业务才是最重要的 要避免这种单纯罗列技术栈的格式
简历被挂麻了,求建议
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

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