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

相关推荐

05-07 17:58
门头沟学院 Java
wuwuwuoow:1.简历字体有些怪怪的,用啥写的? 2.Redis 一主二从为什么能解决双写一致性? 3.乐观锁指的是 SQL 层面的库存判断?比如 stock > 0。个人认为这种不算乐观锁,更像是乐观锁的思想,写 SQL 避免不了悲观锁的 4.奖项证书如果不是 ACM,说实话没什么必要写 5.逻辑过期时间为什么能解决缓存击穿问题?逻辑过期指的是什么 其实也没什么多大要改的。海投吧
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

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