#include<stdio.h>
int main(){
int k;
int a[1000], b[1000], c[1000];
scanf("%d", &k);
if(k <= 0){
return 0;
}
int count = 0;
for(int x = k+1; x <= k*2; x++){
if(k*x % (x-k) == 0){ //若整除,即是整数, y便可以取此值;
int y = k*x/(x-k); // 公式来源 1/k = 1/x + 1/y; -- m = x-k;
a[count] = y; // 1/k - 1/x = m / k*(k+m) 上下同除以m 然后检查是否为整数
b[count] = x;
count++;
}
}
printf("%d\n", count);
for(int i = 0; i < count; i++){
printf("1/%d = 1/%d + 1/%d\n", k, a[i], b[i]);
}
return 0;
}
原题: 输入正整数k,遇到文件末尾结束。找到所有的正整数x和y(x大于等于y),使得1/k=1/x+1/y。