#include <map>
#include <stack>
#include <queue>
#include <vector>
#include <math.h>
#include <string>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <algorithm>
#include <time.h>
#include <set>
#include <list>
#include <iostream>
using namespace std;
#define ll long long
#define ull unsigned long long
#define cls(x) memset(x,0,sizeof(x))
#define clslow(x) memset(x,-1,sizeof(x))
#define INF 0x3f3f3f3f
const ll maxn=1e7+1e6;
bool notprime[maxn];
void prim()
{
memset(notprime,false,sizeof(notprime));
notprime[0]=notprime[1]=true;
for(ll i=2;i<maxn;i++){
if(!notprime[i]){
if(i>maxn/i)continue;
for(ll j=i*i;j<maxn;j+=i)
notprime[j]=true;
}
}
}
ll gcd(ll a,ll b)
{
return b==0 ? a : gcd(b,a%b);
}
int main()
{
// freopen("in1.txt", "r", stdin);
prim();
char a[20],b[20];
ll n;
scanf("%lld",&n);
while(n--){
scanf("%s %s",a,b);
ll x=cha(a);
ll y=cha(b);
if(x==y){
cout<<2<<" "<<2<<endl;
continue;
}
ll tmp=gcd(x,y);
x/=tmp;
y/=tmp;
if(notprime[x]==false && notprime[y]==false){
printf("%lld %lld\n",x,y);
}
else {
printf("impossible\n");
}
}
return 0;
}
GCPC 2018 – Problem E: Expired License
最新推荐文章于 2020-05-30 22:19:51 发布