题目
Input
3
4
6
7
Output
-1
2 4
3 4
题意:给出一个数判断是否能拆成一个素数和合数,可以的话输出素数和合数,否则输出-1
思路:模拟之后发现这个数减去2或3后剩下的数如果能整除2那么这个数就是符合条件的,否则输出-1,具体上代码
AC code
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<map>
#include<sstream>
#include<queue>
#include<stack>
using namespace std;
#define ll long long
const int mod=1e9+7;
int n,a[120000];
void solve()
{
cin>>n;
int flag=0;
if(n<=5)printf("-1\n");
else
{
int p=n-2,q=n-3;
if(p%2==0)printf("%d %d\n",2,p);
else if(q%2==0) printf("%d %d\n",3,q);
else printf("-1\n");
}
}
int main()
{
ios::sync_with_stdio(0);
int t;
while(cin>>t)
{
while(t--)
solve();}
}