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

#include <climits>

#include <cstdlib>

#include <iostream>

#include <vector>

using namespace std;

int main() {

    int n;

    cin >> n;

    vector<int> num;

    for (int i = 2; i < n; i++) {

        int yes = 1;

        for (int j = 2; j <= i; j++) { //找到所有质数

            if (j != i && j != 1 && i % j == 0) {

                yes = 0;

                break;

            }

        }

        if (yes) num.push_back(i);

    }

    int d = INT_MAX;

    int n1, n2;

    for (int i = 0; i < num.size(); i++) { //在质数中遍历找到距离最近且和等于输入的数的两个数

        for (int j = i; j < num.size(); j++) {

            if (num[i] + num[j] == n && d > abs(num[i] - num[j])) {

                d = abs(num[i] - num[j]);

                n1 = i;

                n2 = j;

            }

        }

    }

    cout<<num[n1]<<endl<<num[n2];

}

// 64 位输出请用 printf("%lld")

全部评论

相关推荐

10-15 10:23
门头沟学院 Java
牛可乐的头像真牛:赶紧举报,这公司绝对是诈骗的,等你签约后工作一两个月后根据合同漏洞把你开除,并且要求你赔偿3w培训费,996是为了提前筛选心甘情愿签下合同容易受骗的群体,纯粹面向校招生精心设计的骗局
你见过哪些工贼行为
点赞 评论 收藏
分享
哇哇的菜鸡oc:他这不叫校招offer,而是实习offer
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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