查找组成一个偶数最接近的两个素数(HJ60)

一:解题思路

这道题目首先要知道怎么样判断一个数是否为素数,然后再去求查找组成一个偶数最接近的两个素数。

二:完整代码示例 (C++版和Java版)

C++:

#include <iostream>
#include <cmath>

using namespace std;

bool isPrime(int x)
{
    for (int i = 2; i <= sqrt(x); i++)
        if (x%i == 0)
            return false;
    return true;
}

void getTwoPrime(int x)
{
    int low = 0;
    int high = 0;

    for (low = x / 2, high = x / 2; low >= 2 && high < x;)
    {
        while (!isPrime(low))
            low--;
        while (!isPrime(high))
            high++;
        if (low + high == x)
        {
            cout << low << endl;
            cout << high << endl;
            break;
        }
        else if (low + high < x)
            high++;
        else
            low--;
    }
}

int main()
{
    int x = 0;

    while (cin >> x)
    {
        getTwoPrime(x);
    }

    return 0;
}

 

posted @ 2020-08-03 16:19  repinkply  阅读(218)  评论(0)    收藏  举报