UVA10976-Fractions Again?!

来源:互联网 发布:知乎'' 编辑:程序博客网 时间:2024/05/17 07:38

题意:输入正整数k,找到所有的正整数x>=y,使得1/k=1/x+1/y。

分析:由x>=y,易得k<y<=2*k。遍历y求出x并验证即可。

#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;const int maxn = 25;int a[maxn];int main () {    //freopen("in.txt","r",stdin);    int k;    while(cin>>k){        int sum=0;        for(int y=k+1;y<=2*k;y++){            if(k*y%(y-k)==0) {                int t=k*y/(y-k);                if(t>=y) sum++;            }        }        cout<<sum<<endl;        for(int y=k+1;y<=2*k;y++){            if(k*y%(y-k)==0) {                int t=k*y/(y-k);                if(t>=y) printf("1/%d = 1/%d + 1/%d\n",k,t,y);            }        }    }    return 0;}


原创粉丝点击