心如止水
Je n'ai pas le temps
posts - 400,comments - 130,trackbacks - 0
由题意不难得出,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)  编辑 收藏 引用 所属分类: 题目分类:数学/数论

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理