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

#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;
}

全部评论

相关推荐

01-27 22:50
武汉大学 Java
点赞 评论 收藏
分享
2025-12-31 14:31
湖南科技大学 Web前端
是阿亮吖:一个是这个时间招人比较少,另一个是沟通太少了。六十多份太养生了,最起码沟通个五六百份吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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