题意:有正整数n,求x,y使得1/k=1/x+1/y (x>y)。
思路:枚举k、y,求x。
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
using namespace std;
struct Pair{
int x,y;
Pair(int one,int two){
x=one,y=two;
}
};
int main() {
int n;
while(scanf("%d",&n)==1) {
if(n==1){
printf("1\n1/1 = 1/2 + 1/2\n");
continue;
}
vector<Pair> vec;
int x=0,y=n;
while(++y){
int up,down;
down=y*n,up=y-n;
if(down%up!=0) continue;
x=down/up;
if(y>x) break;
vec.push_back(Pair(x,y));
}
printf("%d\n",vec.size());
for(int i=0;i<vec.size();i++) printf("1/%d = 1/%d + 1/%d\n",n,vec[i].x,vec[i].y);
}
return 0;
}