【题意】:给你一个数k,求所有使得1/k = 1/x + 1/y成立的x≥y的整数对。
【分析】:枚举所有在区间【k+1, 2k】上的 y 即可,当 1/k - 1/y 的结果分子为1即为一组解。
【代码】:
#include<bits/stdc++.h>
using namespace std;
int x[10005];
int y[10005];
#define LL long long
int main()
{
int k,c;
while(~scanf("%d",&k))
{
c=0;
for(int Y=k+1 ;Y<=k<<1; Y++)
{
if((Y*k) % (Y-k)==0)//y是整数
{
x[c]=(Y*k)/(Y-k);
y[c]=Y;
c++;
}
}
printf("%d
",c);
for(int i=0; i<c; i++)
{
printf("1/%d = 1/%d + 1/%d
",k,x[i],y[i]);
}
}
}