/*
* 题意:找到所有正整数 x>=y 使得1/k=1/x+1/y
* 分析:x>=y,1/x<=1/y 所以 y<=2k。 x=k*y/(y-k) 可以看出看y>k,这样才能保证x为正整数
*/
#include<cstdio>
using namespace std;
int main(){
int k;
int ans[10001][2];
while(scanf("%d",&k)!=EOF){
int cnt=0;
for(int y=k+1;y<=2*k;y++){
if(k*y%(y-k)==0 && k*y/(y-k)>=y) cnt++ , ans[ cnt ][0]=k*y/(y-k) , ans[ cnt ][1]=y ;
}
printf("%d\n",cnt);
for(int i=1;i<=cnt;i++)
printf("1/%d = 1/%d + 1/%d\n",k,ans[i][0],ans[i][1]);
}
return 0;
}
Uva oj 10976 Fractions Again (简单枚举)
最新推荐文章于 2021-03-18 15:57:44 发布