题意 给k,找到满足1/k = 1/x + 1/y 的x和y(要求x>=y)
思路 利用式子推导出x = k*y/(y-k),由于x>=y,有y <= k*y/(y-k),可以推出k < y <= 2k,此时在区间内枚举即可
#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <vector>
#include <map>
using namespace std;
typedef pair<int,int> PII;
vector<PII> a;
#define MP make_pair
#define fi first
#define se second
int main()
{
int k,x,y;
while(cin>>k)
{
a.clear();
for(y = k+1;y<=2*k;y++)
{
if((k*y) % (y-k) == 0)
{
x = k*y/(y-k);
a.push_back(MP(x,y));
}
}
cout<<a.size()<<'\n';
for(int i = 0;i<a.size();i++)
{
printf("1/%d = 1/%d + 1/%d\n",k,a[i].fi,a[i].se);
}
}
return 0;
}