白书上的一道水题,暴力时我们要找到x||y的范围,因为>y,则1/x<1/y,so y<2*k...x=k*y/(y-k)。。。
下面附上代码:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int a[10000];
int main()
{
int x,y,k,i,num;
while(scanf("%d",&k)!=EOF) {
num=0;
for(y=k+1;y<=2*k;y++) {
if(k*y%(y-k)==0) {
num++;
a[num]=y;
}
}
printf("%d\n",num);
for(i=1;i<=num;i++) {
y=a[i];
printf("1/%d = 1/%d + 1/%d\n",k,k*y/(y-k),y);
}
}
return 0;
}