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

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

全部评论

相关推荐

点赞 评论 收藏
分享
但听说转正率很低,我现在有在实习了,好纠结要不要去
熬夜脱发码农:转正率低归低,但是实习的经历你可以拿着,又不是说秋招不准备了
点赞 评论 收藏
分享
05-22 09:23
门头沟学院 Java
点赞 评论 收藏
分享
06-10 21:15
门头沟学院 Java
宁阿:好多这种没🧠的公司,他们估计都不知道毕业的人不能给安排实习岗
实习吐槽大会
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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