题意:输入正整数k,找到所有的正整数x>=y,使得1/k=1/x+1/y。
分析:由x>=y,易得k<y<=2*k。遍历y求出x并验证即可。
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn = 25;
int a[maxn];
int main () {
//freopen("in.txt","r",stdin);
int k;
while(cin>>k){
int sum=0;
for(int y=k+1;y<=2*k;y++){
if(k*y%(y-k)==0) {
int t=k*y/(y-k);
if(t>=y) sum++;
}
}
cout<<sum<<endl;
for(int y=k+1;y<=2*k;y++){
if(k*y%(y-k)==0) {
int t=k*y/(y-k);
if(t>=y) printf("1/%d = 1/%d + 1/%d\n",k,t,y);
}
}
}
return 0;
}