题目链接:https://nanti.jisuanke.com/t/36114
质数用筛法打个表,因为要多次询问,而且数值不小,输入要用scanf 不然超时
#include<bits/stdc++.h>
using namespace std;
int prime[1000005];
void is_prime()
{
long long int i, j;
memset(prime, 0, sizeof(prime));
prime[1] = 1;
for(i = 2; i <= 1000000; i++)
{
if(!prime[i])
{
for(j = i * i; j <= 1000000; j += i)
{
prime[j] = 1;
}
}
}
}
int main()
{
// std::ios::sync_with_stdio(false);
is_prime();
// cout << "qqq" << endl;
int t, n, i;
scanf("%d", &t);
while(t--)
{
scanf("%d", &n);
for(i = 1; i <= n;i++)
{//cout << "qqqq" << endl;
//cout<< i << " " << prime[i] << " " << prime[n-i] << endl;
if(!prime[i] && !prime[n-i])
{
printf("%d %d\n", i, (n-i));
break;
}
}
}
return 0;
}