编程题——查找组成一个偶数最接近的两个素数
题目描述:
任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对
输入描述:
输入一个偶数
输出描述:
输出两个素数
示例:
输入
20
输出
7 13
程序代码如下:
#include <iostream>
using namespace std;
/*从最中间的位置查找来满足距离最近
*循环判断是否为素数*/
bool IsPrime(int a)
{
for (int i = 2; i < a; ++i)
{
if (a%i == 0)
return false;
}
return true;
}
int main()
{
int n;
while (cin >> n)
{
int mid = n / 2;
int i;
for (i = mid; i > 0; --i)
{
if (IsPrime(i) && (IsPrime(n - i)))
break;
}
cout << i <<endl<< n - i << endl;
}
return 0;
}
程序运行结果如下: