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

#include <iostream>
#include <cmath>
using namespace std;

bool is_sunumber(int n);
void find_two(int n);
int main() {
    int num;
    cin >> num;
    
   find_two(num);

}
bool is_sunumber(int num){//判断一个数是不是素数
    if (num <= 1) return false;
    if (num == 2) return true;
    if (num % 2 == 0) return false;
    for (int i = 3; i <= std::sqrt(num); i += 2) {
        if (num % i == 0) return false;
    }
    return true;
}
void find_two(int n){//找最小的素数对并输出
    int num1,num2;
    int min_diff=n;
    for(int i=2 ; i<=n/2 ; i++){
        int j = n - i;
        if(is_sunumber(i) && is_sunumber(j)){
            int diff = std::abs(i-j);
            if(min_diff > diff){
                min_diff = diff;
                num1 = i;
                num2 = j;
            }
        }
    }
    cout << num1 << endl;
    cout << num2 << endl;
}

全部评论

相关推荐

03-31 00:39
门头沟学院 C++
南岗痞子:不还有俩没结束吗
点赞 评论 收藏
分享
在笔试的大西瓜很矫健:校招数分不用想了,这经历和学历都不够用,大厂更别想,初筛都过不了,说点不好听的小厂数分都进不去(小厂也是假数分),要两个对口实习+3个项目(或者3+2),而且要有含金量才能补一点你的学历劣势。 建议刷实习,社招找数分,校招看运气,能入行业就行,可以运营转数分
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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