#include<stdio.h>
int main()
{
int k = 0;
int count = 0;
scanf("%d", &k);
//因x > 0
//k*y / (y-k) = x > 0
//所以y > k
//因x >= y
//1/x = 1/k -1/y
//1/x <= 1/y
//所以y <= 2*k
for (int y = k + 1; y <= 2 * k; y++)//数学问题,可以得出y的范围
{
int x = k*y / (y - k);
if (k*(x + y) == x*y)
{
//printf("1/%d = 1/%d + 1/%d\n", k, x, y);
count++;
}
}
printf("%d\n", count);//题目要求先输出符合条件的次数
for (int y = k + 1; y <= 2 * k; y++)
{
int x = k*y / (y - k);
if (k*(x + y) == x*y)
{
printf("1/%d = 1/%d + 1/%d\n", k, x, y);
}
}
return 0;
}
7-3 (分数拆分)输入正整数k,找到所有的正整数x≥y,使得1/k = 1/x + 1/y。(紫书习题)
于 2024-03-10 18:41:33 首次发布
博客围绕C++展开,涉及算法和数据结构相关内容。算法在程序中起着关键作用,数据结构则为数据存储和操作提供基础,二者结合能有效解决各类信息技术问题。
3167






