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

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

https://www.nowcoder.com/practice/f8538f9ae3f1484fb137789dec6eedb9?tpId=37&tqId=21283&rp=1&ru=/exam/oj/ta&qru=/exam/oj/ta&sourceUrl=%2Fexam%2Foj%2Fta%3Fpage%3D1%26pageSize%3D50%26search%3D%26tpId%3D37%26type%3D37&difficulty=undefined&judgeStatus=undefined&tags=&title=

#include <iostream>
using namespace std;

int prime_num(int n) {      //判别一个数是否为素数(对大于2的素数有效)
    int count = 0;
    for (int j = 2; j < n; j++) {
        if (n % j == 0) {
            ++count;
            break;
        }
    }
    if (count == 0) {
        return 1;
    } else {
        return 0;
    }
}

int main() {
    int a;
    cin >> a;
    int b = a / 2;
    if (a == 4) {      //先将4排除,因为4是唯一一个由两个素数2相加而成的数
        cout << 2 << endl;
        cout << 2 << endl;
    } else {
        for (int i = b; i > 0; i--) {      //从a/2开始遍历素数
            if (prime_num(i) == 1 && prime_num(a - i) == 1) {     //需同时满足i和20-i都是素数
                cout << i << endl;
                cout << a - i << endl;
                break;      //由于只输出一组,所以需要跳出循环
            }
        }
    }
}

全部评论

相关推荐

酷酷我灵儿帅:这去不去和线不线下面说实话没啥关系
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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