题目:给你一个数k,求所有使得1/k = 1/x + 1/y成立的x≥y的整数对。
分析:数论,枚举。枚举所有在区间(k+1,2k)上的y即可,当1/k - 1/y的结果分子为1即为一组解。
#include<bits/stdc++.h>
using namespace std;
int x[1100];
int y[1100];
int main()
{
int n;
while(~scanf("%d", &n))
{
int cc = 0;
for(int i = 1 + n; i <= 2 * n; i++)
{
if(n * i % ( i - n) == 0)
{
x[cc] = n * i/( i - n);
y[cc++] = i;
}
}
printf("%d\n",cc);
//printf("%d\n",cc);
for(int i = 0; i < cc; i++)
printf("1/%d = 1/%d + 1/%d\n",n,x[i],y[i]);
}
}
505

被折叠的 条评论
为什么被折叠?



