#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; }