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

#include <cmath>
#include <iostream>
using namespace std;
//素数
bool isPrime(int n ){
    if(n<=1) return false;
    if(n == 2) return true;
    if(n%2==0) return false;
    for(int i = 3;i<=sqrt(n);++i){
        if(n%i==0) return false;
    }
    return true;
}
int main() {
    int n;
    cin >> n;
    //从中间向两边找
    int mid = n/2;
    int left = mid - 1,right = mid+1;

    if(isPrime(mid)){ //判断中间数是否为素数
        cout<< mid << endl << mid;
    } else {
        while (left > 1 && right < n) {
            if(left + right == n && isPrime(left) && isPrime(right)){ //符合条件输出
                cout<< left << endl << right << endl;
                break;
            } else {
                //如果left和right不是素数或者两数和不为n,自增自减
                if(!isPrime(left) || left + right != n){
                    --left;
                }
                if(!isPrime(right)|| left + right != n){
                    ++right;
                }
            }
        }
        
    }
}

全部评论

相关推荐

野猪不是猪🐗:现在的环境就是这样,供远大于求。 以前卡学历,现在最高学历不够卡了,还要卡第一学历。 还是不够筛,于是还要求得有实习、不能有gap等等... 可能这个岗位总共就一个hc,筛到最后还是有十几个人满足这些要求。他们都非常优秀,各方面都很棒。 那没办法了,看那个顺眼选哪个呗。 很残酷,也很现实
点赞 评论 收藏
分享
牛客246576843号:建议简历对点优化,想做HR专门列出HR实习,想做运营专门列出运营实习,并且对点写出项目经历以及数据,同时在个人总结上可以多凸出和岗位的匹配度
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务