这题虽然说是枚举,但没有一定的数学功底的话可能要想很长时间
#include <iostream>
using namespace std;
const int N=10000;
int dpx[N], dpy[N];
int main()
{
int k;
while(cin>>k)
{
int scnt=0;
for(int i=k+1;i<=2*k;i++)//1/x<=1/y, y<=2k;
{
int y=i;
if((k*y)%(y-k)==0)
{
int x=(k*y)/(y-k);
dpx[scnt]=x,dpy[scnt]=y;
scnt++;
}
}
cout<<scnt<<endl;
for(int i=0;i<scnt;i++)
{
cout<<"1/"<<k<<" = "<<"1/"<<dpx[i]<<" + 1/"<<dpy[i]<<endl;
}
}
return 0;
}