8.8 分数拆分split
来源:互联网 发布:印象笔记破解版 mac 编辑:程序博客网 时间:2024/06/06 02:47
- 题目
- 题解
- 代码
题目
输入正整数k,找到所有的正整数对(x,y),使得:1/k = 1/x + 1/y,且x>=y。输出有多少组满足要求的x、y。
50%的数据满足:2<=k<=1000;
100%的数据满足:2<=k<=30000。
题解
因为x>=y,所以可以通过枚举y来求x
那么枚举的范围呢?
因为x,y,k都是分母,所以y一定大于k(y>=k+1)
因为x>=y,所以1/x>=1/y,
所以1/k=1/x+1/y>=1/y+1/y
所以y<=2k
枚举y,用1/k-1/y求1/x,通分后就是i/k*i-k/k*i,合并就是i-k/k*i。然后看k*i能否整除i-k,符合条件就是正确的1/x,答案加1
时间复杂度O(n)
代码
var k,i,ans:longint;begin assign(input,'split.in'); assign(output,'split.out'); reset(input);rewrite(output); readln(k); for i:=k+1 to 2*k do if (k*i) mod (i-k)=0 then inc(ans); writeln(ans); close(input);close(output);end.
阅读全文
2 0
- 8.8 分数拆分split
- 分数拆分
- 分数拆分
- 分数拆分
- 分数拆分
- 分数拆分
- 分数拆分
- 分数拆分
- 分数拆分
- 分数拆分
- 分数拆分
- 分数拆分
- 分数拆分
- 分数拆分
- 分数拆分
- 分数拆分
- 分数拆分
- 分数拆分
- 实验吧逆向工程之 1000 WP
- Python玩转数据分析学习笔记-04字典相关
- Swift_学习笔记_枚举和结构体
- 牛顿法和拟牛顿法
- UVA-524 Prime Ring Problem 素数环
- 8.8 分数拆分split
- 【tyvj1520】树的直径(dfs||树形dp)
- 用python写网络爬虫-提取我的博客内容
- SpringCloud微服务系列(5): 服务容错断路器Hystrix
- dom4j语法(xml)
- POI实现EXCEL单元格合并及边框样式
- jquery 单选按钮获取选中的值
- 多线程面试题
- Ubuntu U盘启动盘制作步骤