UVA10976-Fractions Again?!

题意还是很明显,就是让你找。

但是还是需要先分析,xy关系可以推算出y的最大范围2k

然后公式两边乘一乘,枚举y即可求出x,再判断。

 

#include
#include
using namespace std;
#define eps 1e-9
//x(y-k)=y*k
int main()
{
    int k,x,y;
    while(scanf("%d",&k)!=EOF)
    {
        int sum=0;
        for(int y=k+1;y<=2*k;y++){
            if((y*k)%(y-k)==0){
                int t=(y*k)/(y-k);
                if(t>=y) sum++;
            }
        }
        printf("%d\n",sum);
        for(int y=k+1;y<=2*k;y++){
            if((y*k)%(y-k)==0){
                int t=(y*k)/(y-k);
                if(t>=y) printf("1/%d = 1/%d + 1/%d\n",k,t,y);
            }
        }
    }
    return 0;
}

 

 

 

 

 

 

你可能感兴趣的:(刷题)