#include<iostream>
using namespace std;
int main(){
long int a,b,c;
cin>>a>>b;//输入分子分母
while(1){
if(b%a!=0){ //如果分子不能够被分母整除
c=b/a+1; //分解出一个分母为 b/a+1 的埃及分母
} else{//分子能够被分母整除
c=b/a; //否则,输出化简后的真分数(埃及分数) 表示的是分解完成
a=1; //表示的是分解完成
}
if(a==1){ //表示的是分解完成 直接输出
cout<<"1/"<<c<<endl;
break;
} else{
cout<<"1/"<<c<<"+";
}
a=a*c-b; //求出余数的分子 11*2-12=10
b=b*c; //求出余数的分母 12*2=24
if(a==3){ //如果余数是3,直接可以输入
cout<<"1/"<<b/2<<"+"<<"1/"<<b<<endl;
break;
}
}
system("pause");
}
如果真分数的分子不能够整除分母,则可以从原来的分数中分解出分母为c=a/b+1 的埃及分数。
分解后剩下部分形成一个新的a/b,a=a*c-b; b=b*c; 继续用上面的方法。