#include <stdio.h>//自测运行失败了,说你自己判断,你是对的就直接去运行,最后一个4字节会溢出,最后我换为了long
void fenshujian(long* x1,long* y1,long* x2,long* y2){ //第一个分数减第二个分数,结果放到第一个分数的位置上
long x=0,y=0;
y=(*y1)*(*y2);
x=(*x1)*(*y2)-(*x2)*(*y1);
*x1=x;
*y1=y;
return ;
}
int main() {
long a, b,tempx=0,tempy=0,beix=1,beiy=0,arr[50]={0},top=0; //数组用来放分子为1,分母为符合的结果
while (scanf("%ld/%ld\n", &a, &b) != EOF) { // 注意 while 处理多个 case
// 64 位输出请用 printf("%lld") to
tempx=a,tempy=b,beix=1;
for(long i=2;;i++){ //从1/2开始
beiy=i;
if(tempx*i>=tempy){ //1/2小于真分数,就减去1/2
arr[top++]=i;
fenshujian(&tempx,&tempy,&beix,&beiy); //减去1/2
if(tempx==0){ //真分数和1/2相等,直接返回
break;
}
if(tempy%tempx!=0){
continue;
}
else{
long dp=0;dp=tempy/tempx; //减去后是分子为一的就返回
arr[top++]=dp;
break;
}
}
}
for(int i=0;arr[i]!=0;i++){ //输出
printf("1/%ld",arr[i]);
if(arr[i+1]!=0){
printf("+");
}
}
printf("\n");
}
return 0;
}