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

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

https://www.nowcoder.com/practice/f8538f9ae3f1484fb137789dec6eedb9

#include <iostream>
#include <vector>
using namespace std;
bool isSU(int n){
    //判断一个数是不是素数
    for(int i=2;i<n/2+1;i++){
        if(n%i==0){
            return false;}
    }

    return true;
}
int main() {
int n;//输入一个大于2的偶数
vector<int>a;//记录比n/2小的那个素数
int minpos=0;//记录最小差值的素数对中,小于n/2那个在a中存储的位置
cin>>n;
int pos=-1;
for(int i=n/2;i>=2;i--){
    if(isSU(i)&&isSU(n-i)){//用函数判断一个数是不是素数
a.push_back(i);
pos++;//入栈一次记录一次下标,每记录一次下标 都先判断一下最小值是否需要更新
if(abs(n-i-i)<abs(n-a[minpos]-a[minpos])){minpos=pos;}
    }
}
cout<<a[minpos]<<endl;//小于等于n/2的那个素数
cout<<(n-a[minpos])<<endl;//做差后,另一个素数一定是大于等于n/2的,一定是升序输出
return 0;
}

全部评论

相关推荐

在等offer的火锅...:我去履历这么好,都找不到工作吗?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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