Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <iostream>#include <string>#include <cmath>using namespace std;#define MAXN 1000000 /** prime_table[i]==1 表示 i 是素数,等于 0 则不是素数 */int prime_table[MAXN+1];void compute_prime_table() {int i, j;const int upper = sqrt(MAXN);for (i = 2; i <= MAXN; i++) prime_table[i] = 1;prime_table[0] = 0;prime_table[1] = 0;for (i = 2; i < upper; i++)if(prime_table[i]) {for (j = 2; j * i <= MAXN; j++) prime_table[j*i] = 0;}}int is_prime(unsigned int n) {return prime_table[n];}int main() {int N;cin >> N;compute_prime_table();for (int i = 2; i <= N / 2; ++i) {if (is_prime(i) && is_prime(N - i)) {cout << i << " " << N - i << endl;return 0;