题目
描述
任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对。
数据范围:输入的数据满足 4≤n≤1000 4≤n≤1000
输入描述:
输入一个大于2的偶数
输出描述:
从小到大输出两个素数
思路
以num/2为节点分别向上向下搜索素数 如果满足 i为素数,并且num-i同样为素数则打印输出
代码
#include <iostream>
#include "math.h"
using namespace std;
bool prime_number(int num)
{
for (int i = 2; i <= sqrt(num); i++)
{
if (num % i == 0) return false;
}
return true;
}
int main() {
int num;
cin >> num;
int max = 0;
int min = 0;
for (int i = num/2; i < num; i++)
{
if (prime_number(i) && prime_number(num - i))
{
max = i;
min = num - i;
break;
}
}
cout << max << endl;
cout << min << endl;
return 0;
}