zoukankan      html  css  js  c++  java
  • UVa 10976

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

    分析:由1/k=1/x+1/y可以推得x=k*y/(y-k),我们只需要枚举即可,又因为x>=y,所以1/x<=1/y,又可得y<=2k;

    所以k+1<=y<=2k;

    代码如下:

    #include<cstdio>
    #include<iostream>
    using namespace std;
    const int maxn=10005;
    int x[maxn],y[maxn];
    int main()
    {
        int k,cnt=1;
        while(scanf("%d",&k)!=EOF&&k!=0)
        {
            cnt=1;
            for(int i=k+1;i<=2*k;i++)
            {
                if((k*i)%(i-k)==0)
                {
                    x[cnt]=(k*i)/(i-k);
                    y[cnt]=i;
                    cnt++;
                }
            }
            printf("%d
    ",cnt-1);
            for(int i=1;i<cnt;i++)
            {
                printf("1/%d = 1/%d + 1/%d
    ",k,x[i],y[i]);
            }
        }
        return 0;
    }
    



  • 相关阅读:
    昨天
    独一无二
    参加婚礼
    好好说话
    叶问4
    争吵+侦探成旭
    慢慢来
    cs go
    附3、Storm课程学习整体思路及问题 ---没用
    7、kafka知识总结
  • 原文地址:https://www.cnblogs.com/Zeroinger/p/5493913.html
Copyright © 2011-2022 走看看