注意:利用公式求出的x可能不是整数,要判断一下。
#include<cstdio>
#include<cstring>using namespace std;
int a[10000];
int b[10000];
int main(){
int k;
while(scanf("%d",&k)!=EOF){
int maxn=0;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
for(int i=k+1;i<=2*k;i++)
if((i*k)%(i-k)==0&&(i*k)/(i-k)>=i){
a[maxn]=(i*k)/(i-k); b[maxn]=i;
maxn++; continue;
}
printf("%d\n",maxn);
for(int i=0;i<maxn;i++)
printf("1/%d = 1/%d + 1/%d\n",k,a[i],b[i]);
}
return 0;
}