Uva10976——Fractions Again?!

来源:互联网 发布:ansys软件百度云 编辑:程序博客网 时间:2024/05/17 03:08

简单的题目,很容易看懂。

主要是枚举,但是枚举的范围不确定。

从x >= y , 推出 1 / x <= 1 / y,因为 1 / k - 1 / y = 1 / x ,推出 1 / k - 1 / y <= 1 / y,最后得出 y <= 2 * k。


然后就是枚举,暴力过。

代码:

#include <iostream>#include <cstdio>#include <cstring>using namespace std;int data[15000];int main(){//freopen("1.txt", "r", stdin);int k, i, j;while(cin >> k){memset(data, 0, sizeof(data));j = 0;for(i = k + 1; i <= 2 * k; i++){if((k * i) % (i - k) == 0)data[j++] = i;}cout << j << endl;for(i = 0; i < j; i++){printf("1/%d = 1/%d + 1/%d\n", k, (k * data[i]) / (data[i] - k), data[i]);}}return 0;}


1 0