k-th divisor CodeForces - 762A 简单数学。。

题目很简单:给n,k,问n的第k个因数,若没有输出-1,。但是n很大。。

分析:这种题自己以前应该有想过根号,这次也许也想了,但是一下子就过了,然后想了别的错误的想法,结果去了解别的东西。。(直接复制别人的描述好了)

可以只枚举sqrt(n); 
因子是成对出现的; 
所以i是n的因子 
n/i也是n的因子; 
注意i*i=n的情况就好; 
对于小于sqrt(n)的放在v里面,大于sqrt(n)的放在vv里面; 
v是升序的,vv是降序的;因为n/i=x (i< sqrt(n),则x>sqrt(n)) 
然后根据k和两个v的size的关系.控制输出就好; 
(一个数的因子不会那么多的,就算1e15,也没超过1000个因子) 



不过要注意的是,我在cf上提交了,总是说sqrt错误,所以可以通过  i*i<=n来判断比较好。


虽然自己多看了如何用优先队列。。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值