思路:枚举y,其范围为[k,2k]
#include <cstdio>using namespace std;const int maxk=10005;int xs[maxk]; //不能与变量同名 int ys[maxk];int main(){ int k,cnt; while(scanf("%d",&k)!=EOF){ cnt=0; int x,y; for(y=k+1;y<=2*k;y++){ x=(k*y)/(y-k); if((x*(y-k)==k*y)&&(x>=y)) { //判断x是不是整数 xs[cnt]=x;ys[cnt++]=y; } } PRintf("%d/n",cnt); for(int i=0;i<cnt;i++) printf("1/%d = 1/%d + 1/%d/n",k,xs[i],ys[i]); } return 0;}新闻热点
疑难解答