uva 10976 fractions again(水题)——yhx

来源:互联网 发布:烟花算法程序 编辑:程序博客网 时间:2024/04/30 09:37

 1 #include<cstdio> 2 int a[30010],b[30010]; 3 int main() 4 { 5     int i,j,k,l,m,n,x,y,z; 6     while (scanf("%d",&k)==1) 7     { 8         n=0; 9         for (i=k+1;i<=2*k;i++)10           if ((k*i)%(i-k)==0)11           {12               a[++n]=k*i/(i-k);13               b[n]=i;14           }15         printf("%d\n",n);16         for (i=1;i<=n;i++)17           printf("1/%d = 1/%d + 1/%d\n",k,a[i],b[i]);18     }19 }

编程很简单,关键在于数学推导。

∵x≥y

∴1/x≤1/y

∴1/k=1/x+1/y≤2/y

即y≤2k

又易知y>k

在此范围内枚举即可。

验证时,

由1/k=1/x+1/y

得x=ky/(y-k),

判断上式是否为整数即可。

0 0
原创粉丝点击