由题意不难得出,k+1 <= y <= 2k,这样的话,枚举y,由k、y解出x即可。
以下是我的代码:
#include<stdio.h>
typedef struct
{
long x,y;
}pair;
int main()
{
long k,x,y,ans;
pair r[10007];
while(scanf("%ld",&k)==1)
{
ans=0;
for(y=k+1;y<=2*k;y++)
if((k*y)%(y-k)==0)
{
x=(k*y)/(y-k);
ans++;
r[ans].x=x;
r[ans].y=y;
}
printf("%ld\n",ans);
for(long i=1;i<=ans;i++)
printf("1/%ld = 1/%ld + 1/%ld\n",k,r[i].x,r[i].y);
}
return 0;
}
posted on 2010-04-24 12:56
lee1r 阅读(292)
评论(0) 编辑 收藏 引用 所属分类:
题目分类:数学/数论