题目描述
输入正整数 k,找到所有的正整数 x≤y,使得:1/k=1/a+1/b
输入格式
若干行,每行一个正整数:k 。
输出格式
按照 x 由小到大输出符合条件的等式: 1/k=1/a+1/b。
样例
输入样例
12
输出样例
1/12=1/13+1/156
1/12=1/14+1/84
1/12=1/15+1/60
1/12=1/16+1/48
1/12=1/18+1/36
1/12=1/20+1/30
1/12=1/21+1/28
1/12=1/24+1/24
#include <bits/stdc++.h>
using namespace std;
int gcd(int x, int y) {
if (!y) return x;
return gcd(y, x % y);
}
int main() {
int k;
cin >> k;
double sum = 1.0 / k;
for (int x = k + 1; x <= k * 2; x++) {
for (int y = x + 1; y <= k * x / gcd(x, k); y++) {
double s1 = 1.0 / x, s2 = 1.0 / y;
if(s1 + s2 == sum) {
cout << "1/" << k << "=" << "1/" << x << "+1/" << y << endl;
break;
}
}
}
return 0;
}
输出少了几个,求助