题解 | #查找组成一个偶数最接近的两个素数#
查找组成一个偶数最接近的两个素数
https://www.nowcoder.com/practice/f8538f9ae3f1484fb137789dec6eedb9
#include <iostream>
#include <string>
#include <vector>
#include<stdlib.h>
using namespace std;
/*任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对。
数据范围:输入的数据满足 4≤n≤1000
输入描述:
输入一个大于2的偶数
输出描述:
从小到大输出两个素数*/
//素数
bool fun7(int m)
{
for (int i = 2; i < m; i++)
{
if (m%i == 0)
{
return false;
}
}
return true;
}
int main()
{
int m;
cin >> m;
int x, y;
int diff = m;
vector<pair<int, int>> vec;
for (int i = 2; i < m/2+1; i++)
{
int j = m - i;
//如果不是两个素数则下一组
if (!(fun7(j) && fun7(i)))
{
continue;
}
if (abs(i-j)<diff)
{
diff = abs(i - j);
x = i;
y = j;
}
}
cout << x << endl;
cout << y << endl;
system("pause");
return 0;
}