Uva - 10976 - Fractions Again?!
2015-06-17 22:08
435 查看
It is easy to see that for every fraction in the form
(k > 0), we can
always find two positive integers x and y, x ≥ y, such that:
.
Now our question is: can you write a program that counts how many such pairs of x andy there are for any given k?
as shown in the sample output.
遍历y,y的取值是从k+1到2k,每次判断 y * k % (y - k)是否是0,就是判断k之分一减去y分之一能否约分成分子为1的分数,结果用队列存放。
AC代码:
(k > 0), we can
always find two positive integers x and y, x ≥ y, such that:
.
Now our question is: can you write a program that counts how many such pairs of x andy there are for any given k?
Input
Input contains no more than 100 lines, each giving a value of k (0 < k ≤ 10000).Output
For each k, output the number of corresponding (x, y) pairs, followed by a sorted list of the values of x and y,as shown in the sample output.
Sample Input
2 12
Sample Output
2 1/2 = 1/6 + 1/3 1/2 = 1/4 + 1/4 8 1/12 = 1/156 + 1/13 1/12 = 1/84 + 1/14 1/12 = 1/60 + 1/15 1/12 = 1/48 + 1/16 1/12 = 1/36 + 1/18 1/12 = 1/30 + 1/20 1/12 = 1/28 + 1/21 1/12 = 1/24 + 1/24
遍历y,y的取值是从k+1到2k,每次判断 y * k % (y - k)是否是0,就是判断k之分一减去y分之一能否约分成分子为1的分数,结果用队列存放。
AC代码:
#include <iostream> #include <cstdio> #include <cstdlib> #include <cctype> #include <cstring> #include <string> #include <sstream> #include <vector> #include <set> #include <map> #include <algorithm> #include <stack> #include <queue> #include <bitset> #include <cassert> using namespace std; queue<pair<int, int> > ans; int main() { int k; while (cin >> k && k) { int cnt = 0; for (int i = k + 1; i <= 2 * k; i++) { long long pro = (long long)i * k; int minus = i - k; if (pro % minus == 0) { // 是否能约分成分子是1的分数 ans.push(pair<int, int>(pro / minus, i)); cnt++; } } printf("%d\n", cnt); for (int i = 0; i < cnt; i++) { printf("1/%d = 1/%d + 1/%d\n", k, ans.front().first, ans.front().second); ans.pop(); // 全部输入就刚好清空了 } } return 0; }
相关文章推荐
- 关于vs2010 error: LNK1123: failure during conversion to COFF: file invalid or corrupt 错误的解决...
- Container with most water
- tail跟踪日志时打印时间
- hdu oj 4300 Clairewd’s message AC code
- [LeetCode] Contains Duplicate III
- Climbing Stairs
- 对retain 和 assign的理解
- Error Domain=NSCocoaErrorDomain Code=3000 "未找到应用程序的“aps-environment”的授权字符串" UserInfo=0x17426e940 {NS
- hdu 1702 ACboy needs your help again!
- 从Clarifai的估值聊聊深度学习
- UVa 10551 - Basic Remains
- [AIR] 检测移动设备运动
- youwuku和koudaitong以及weimeng差异
- iphone使用keychain来存取用户名和密码
- RHEL6.4 安装 highpoint RocketRAID 2720 阵列卡驱动
- Xcode运行出错Installation Failed Invalid argument
- linux下,使用opencv训练级联分类器opencv_traincascade
- Installation error: INSTALL_FAILED_CPU_ABI_INCOMPATIBLE
- 浅谈使用NIO,AIO的感受
- 关于:HTTP Header -> Content-Type: text/plain Cache-Control: no-cache IE浏览器弹出错误下载对话