输入正整数 k,找到所有的正整数x≥y,使得
样例输入:
2
12
样例输出:
1/2=1/3+1/6
1/2=1/4+1/4
2
1/12=1/156+1/13
1/12=1/84+1/14
1/12=1/60+1/15
1/12=1/48+1/16
1/12=1/36+1/18
1/12=1/30+1/20
1/12=1/28+1/21
1/12=1/24+1/24
8
解:
使用暴力枚举,因为题目中规定x>=y,所以很容易确定x的取值范围:k+1=<x<=2*k;所以假设等式成立,求得y的值,带入原公式中如果满足,则输出等式,否则继续循环。
#include<stdio.h>
int main()
{
int n;
while(~scanf("%d",&n))
{
int x,y,count;
count = 0;
for(x=n+1;x<=2*n;x++){
y=(n*x)/(x-n);
if(n*(x+y)==x*y)
{
count++;
printf("1/%d=1/%d+1/%d\n",n,x,y);
}
}
printf("%d\n",count);
}
return 0;
}