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

#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")

全部评论

相关推荐

01-22 17:31
C++
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务