题目描述
任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对
输入描述:
输入一个偶数
输出描述:
输出两个素数
输入例子:
20
输出例子:
713
#include <iostream> using namespace std; bool isprime(int a) { for (int i = 2; i < a / 2; i++) { if (a % i == 0) return false; } return true; } int main() { int n; while (cin >> n) { if (n % 2!=0)//非偶数为错 return 0; int half = n / 2; //if (isprime(half))//直接判断中间数是否为素数 // cout << half << endl << half << endl; //else //{ int i, j, d, min = 0; for (i = 2; i <= half; i++) { if (isprime(i) && isprime(n - i)) { d = n - i - i; if (min == 0 || min > d)//min=0才能进入if语句 { min = d; j = i; } } } cout << j << endl << (n - j) << endl; //} } }