- 代碼:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int m,n,a,b,r1,r2,step,d1;
printf("請輸入分母值m:\n");
scanf("%d",&m);
printf("請輸入分子值n:\n");
scanf("%d",&n);
printf("n/m = 1/a + 1/b 之結果可分解為\n\n");
printf(" m n a b\n");
printf("-----------------------------\n");
step = 0;
for(d1=1;d1<=(m-1);d1++)
{
r1 = (m+d1)%n;
if(r1<=0.0001)
{
r2 = (m*(m+d1)/n)%d1;
if(r2<=0.0001)
{
a = (m+d1)/n;
b = m*(m+d1)/(n*d1);
printf("%d %d %d %d\n\n",m,n,a,b);
step = 1;
}
}
}
if(step==0)
{
printf(" %d %d \n\n",m,n);
printf("此時無法分解成兩個埃及分數之和\n\n");
}
system("PAUSE");
return 0;
}
修改自"2006年屏中數理資優班科展"
(因應需求做出的程式~)