枚举y则x=k*y/(y-k) 一一枚举出来然后用不定长数组
<span style="font-size:14px;">#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
using namespace std;
vector<int> tx;
vector<int> ty;
void solve(int k)
{
for(int y = k+1;y<=2*k;y++)
{
if(k*y%(y-k) == 0)
{
tx.push_back(k*y/(y-k));
ty.push_back(y);
}
}
cout<<tx.size()<<endl;
for(int i = 0;i<tx.size();i++)
{
printf("1/%d = 1/%d + 1/%d\n", k, tx[i], ty[i]);
}
}
int main()
{
int n;
while(cin>>n)
{
tx.clear();
ty.clear();
solve(n);
}
return 0;
}</span>