查找组成一个偶数最接近的两个素数
查找组成一个偶数最接近的两个素数
/*
2022年09月21日 11:43:09
穷举,挨个判断能组成 n 两个素数
比较这两个素数差值绝对值是否最小,不断更新min
随时要保存好这2个素数
*/
#include <iostream>
#include <math.h>
#include <vector>
using namespace std;
bool IsPrime(int x){
for(int i = 2; i <= sqrt(x); i++){
if(x % i == 0)
return false;
}
return true;
}
int main()
{
int n;
cin >> n;
vector<int> v(2, 0);
int min = INT16_MAX;
for(int i = 2; i < n; ++i){ // 穷举
if(IsPrime(i) && IsPrime(n - i)){
// 保存最接近的2个素数
if(abs(n-i-i) < min){
v[0] = i, v[1] = n - i; // 保存起来
min = abs(n-i-i);
}
}
}
cout << v[0] << endl;
cout << v[1] << endl;
return 0;
}
/*
2022年09月21日 11:43:09
从偶数中间开始判断,这样的2个素数差值绝对就是最小的
不需要一个min随时去更新了
*/
#include <iostream>
#include <math.h>
using namespace std;
bool IsPrime(int x) {
for (int i = 2; i <= sqrt(x); i++) {
if (x % i == 0)
return false;
}
return true;
}
int main() {
int n;
cin >> n;
for (int i = n/2; i >= 0; --i) { // 从中间开始判断
if (IsPrime(i) && IsPrime(n - i)) {
cout << i << endl;
cout << n - i << endl;
break;
}
}
return 0;
}