您的位置:首页 > 其它

分数拆分

2014-05-02 18:58 309 查看

题目66

分数拆分

时间限制:3000 ms | 内存限制:65535 KB

难度:1

描述

现在输入一个正整数k,找到所有的正整数x>=y,使得1/k=1/x+1/y.

输入第一行输入一个整数n,代表有n组测试数据。

接下来n行每行输入一个正整数k输出按顺序输出对应每行的k找到所有满足条件1/k=1/x+1/y的组合样例输入
2
2 
12

样例输出
1/2=1/6+1/3
1/2=1/4+1/4
1/12=1/156+1/13
1/12=1/84+1/14
1/12=1/60+1/15
1/12=1/48+1/16
1/12=1/36+1/18
1/12=1/30+1/20
1/12=1/28+1/21
1/12=1/24+1/24


#include<stdio.h>
int main(){
int n;
scanf("%d",&n);
    while(n--){
         int k,x,y; 
        scanf("%d",&k);
       for(y=k+1; y<=2*k; y++)
            if((y*k)%(y-k)==0){
                x = (y*k)/(y-k);
                printf("1/%d=1/%d+1/%d\n",k,x,y);
            }
        }
        return 0;
}
    //由x>=y可知1/x<=1/y, 1/k-1/y<=1/y. 故k<y<=2k; 仅需控制y的范围即可。

水题,但要吸取一个教训,不要轻易提交题,检查检查代码,看看结果,格式是不是对的,再提交。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: