#include <stdio.h>
void main()
{ int a1,b1,a,b,c,d,k,j,t,u,f[20];
printf(" 请输入分数的分子a、分母b: ");
scanf("%d,%d",&a1,&b1);
if(a1==1 || b1%a1==0)
{ printf(" %d/%d=%d/%d \n",a1,b1,1,b1/a1);
return;
}
for(d=1;d<=5;d++)
{a=a1;b=b1;k=0;t=0;
while(1)
{c=b/a+d;
if(c>1000000000 || c<0)
{t=1;break;}
if(c==b1)c++; // 保证埃及分数的分母不与给定分数的分母相同
k++;f[k]=c;
a=a*c-b; b=b*c;
for(u=2;u<=a;u++)
while(a%u==0 && b%u==0)
{a=a/u;b=b/u;}
if(a==1 && b!=b1) //化简后的分数为埃及分数,则赋值后退出
{k++;f[k]=b;break;}
}
if(t==1) continue;
{printf(" %d/%d=1/%d",a1,b1,f[1]);
for(j=2;j<=k;j++)
printf("+1/%d",f[j]);
printf("\n");}
}
}
![]()