UVA - 10976 - Fractions Again?!
程序员文章站
2022-06-08 12:26:29
...
/*
题目大意:就是把一个数的倒数拆分成两个分数的和
暴力可以解决问题
*/
#include <iostream>
#include <stdio.h>
#include <algorithm>
#define MAXN 1010
int arge[MAXN];//存储符合条件的y的值
using namespace std;
int main(void)
{
int n;
while (scanf("%d", &n) != EOF)
{
int count = 0;//符合条件的y的数量
for (int y = n + 1; y <= 2 * n; y++)
if ((n*y) % (y - n) == 0)//如果当前的x存在
arge[count++] = y;//就存入数组之中
printf("%d\n", count);
/*for (int i = 0; i < count; i++)
if (!i)
printf("1/%d = 1/%d + 1/%d", n, (n*arge[i]) / (arge[i] - n), arge[i]);
else
printf("\n1/%d = 1/%d + 1/%d", n, (n*arge[i]) / (arge[i] - n), arge[i]);
*/
for (int i = 0; i < count; i++)//依次打印各个算式
printf("1/%d = 1/%d + 1/%d\n", n, (n*arge[i]) / (arge[i] - n), arge[i]);
}
return 0;
}
其中的变量y只能够增长到2n的推导过程如下: