#include <iostream>
#include <cmath>
#define MAX 1000
using namespace std;
int main(int argc, char *argv[])
{
int X;
cout << "請輸入X的值:";
cin >> X;
if (X > MAX || X < 3)
{
cout << "輸入的X不合法!" << endl;
system("pause");
return 0;
}
int addCount = 0;
int count = 1;
int init[MAX] = { 0, 1 };
int k = 0;
for (int i = 3; i <= MAX; i++)
{
bool isHehe = true;
for (int j = 2; j <= sqrt(i); j++)
{
if (i%j == 0)
{
isHehe = false;
break;
}
}
if (isHehe)
{
init[i-1] = 1;
count++;
}
}
int *hehe = new int[count];
for (int i = 0; i < MAX; i++)
{
if (init[i] == 1)
{
hehe[k++] = i + 1;
}
}
for (int i = 0; 2*hehe[i]<=X; i++)
{
for (int j = count-1; j >= 0; j--)
{
if (hehe[i] + hehe[j] == X)
{
addCount++;
cout << hehe[i] << " " << hehe[j] << endl;
break;
}
if (hehe[i] + hehe[j] < X)
{
break;
}
}
}
cout << "輸入的X值可以轉化爲 " << addCount << " 對質數之和!" << endl;
delete[] hehe;
system("pause");
return 0;
}