UVA 10976 Fractions Again?!【暴力枚举/注意推导下/分子分母分开保存】
【题意】:给你一个数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[10005]; int y[10005]; #define LL long long int main() { int k,c; while(~scanf("%d",&k)) { c=0; for(int Y=k+1 ;Y<=k<<1; Y++) { if((Y*k) % (Y-k)==0)//y是整数 { x[c]=(Y*k)/(Y-k); y[c]=Y; c++; } } printf("%d\n",c); for(int i=0; i<c; i++) { printf("1/%d = 1/%d + 1/%d\n",k,x[i],y[i]); } } }