#include<stdio.h>
#define MAX 1002
int main()
{
int number,i=0,j=0,min,m,n;
int a[MAX][4],b[MAX][2];
scanf("%d",&number);
fflush(stdin);
for(i=0;i<number;i++)
{
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
}//录入
for(i=0;i<number;i++)
{
min=a[i][1]>a[i][3]?a[i][3]:a[i][1];
for(j=min;;j++)
{
if(j%a[i][1]==0&&j%a[i][3]==0)//求通分的倍数
{
a[i][0]=j/a[i][1]*a[i][0];
a[i][2]=j/a[i][3]*a[i][2];
b[i][1]=j;
b[i][0]=a[i][0]+a[i][2];
break;
}
}
}
for(i=0;i<number;i++)
{
int r;
m=b[i][0];
n=b[i][1];
r=gcd(m,n);
printf("%d %d\n",b[i][0]/r,b[i][1]/r);
}
return 0;
//,找最小公倍数通分
//化简
//输出每一组的结果
}
int gcd(int a,int b)
{
int r;
r=a%b;
while(r!=0)
{
a=b;
b=r;
r=a%b;
}
return b;
}