查找组成一个偶数最接近的两个素数
题目描述
任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对。
思路:
要求输出组成指定偶数的两个素数差值最小,那么一个素数要大些,从中间开始找的话就是保证两个数差距最小,另一个数用总数减去即可。
#include<iostream>
#include<math.h>
using namespace std;
bool isPrime(int n)
{
for(int i = 2; i <= sqrt(n); i++)
{
if(n % i == 0)
return false;
}
return true;
}
int main()
{
int n;
int half;
while(cin >> n)
{
half = n / 2;
int i = 0;
for(i = half; i > 0; i--)
{
if(isPrime(i) && isPrime(n - i))
break;
}
cout << i << endl << n - i << endl;
}
return 0;
}