题目链接:k-th divisor

求出N的第K大因子,满足N <= 10^15,K <= 10^9

直接暴力……

 #include <bits/stdc++.h>

 using namespace std;

 #define rep(i,a,b)              for(int i(a); i <= (b); ++i)
#define LL long long LL n, k, h, ans;
int num; int main(){ scanf("%lld%lld", &n, &k);
h = (LL)sqrt(n + 0.5);
if (h * h == n){
rep(i, , h - ) if (n % i == ) num += ;
++num;
}
else{ rep(i, , h) if (n % i == ) num += ; } if (num < k){ puts("-1"); return ; } if (h * h == n){
int cnt = ;
if (k <= num / ){
rep(i, , h) if (n % i == ){
++cnt;
if (cnt == k){
ans = i;
break;
}
}
} else if (k == num / + ){
printf("%lld\n", h);
return ;
} else{
int m = k - num / - ;
int ret = num / - m + ;
rep(i, , h) if (n % i == ){
++cnt;
if (cnt == ret){
ans = n / i;
break;
}
}
}
} else
{
int cnt = ;
if (k <= num / ){
rep(i, , h) if (n % i == ){
++cnt;
if (cnt == k){
ans = i;
break;
}
}
} else{
int m = k - num / , cnt = ;
int ret = num / - m + ;
rep(i, , h) if (n % i == ){
++cnt;
if (cnt == ret){
ans = n / i;
break;
}
}
}
} printf("%lld\n", ans);
return ; }

最新文章

  1. java 500/404错误总结
  2. Chromium源码--视频播放流程分析(拨开云雾)
  3. MatLab GUI Change Size 改变界面大小
  4. PHP 文件系统管理函数与 preg_replace() 函数过滤代码
  5. Java编程思想学习笔记_2(继承和多态)
  6. 第1个linux命令——echo
  7. 3D模型选中显示样式改变
  8. Nginx代理转发Apache+svn
  9. slf4j 与各个 logging框架的适配器说明
  10. OA系统开发人事模块关于请假跨月的处理
  11. Python OpenCV 图像处理初级使用
  12. Linux—shell中$(( ))、$( )、``与${ }的区别
  13. undo系统参数详解
  14. PAT乙级考前总结(二)
  15. 让Entity Framework不再私闯sys.databases
  16. HDU 4635 Strongly connected (强连通分量+缩点)
  17. HTML-表格-列表-结构标记-表单
  18. js实现oss文件上传及一些问题
  19. mac OS X下Java项目环境搭建+IntelliJ IDEA Jrebel插件安装与破解+Office 2016破解版安装
  20. js的event.preventDefault()与event.stopPropagation()

热门文章

  1. Robo 3T
  2. Redis实现之事件
  3. JQuery easyUi datagrid 中 自定义editor作为列表操作按钮列
  4. AD管理中心
  5. 『编写高质量代码Web前端开发修炼手册』读书笔记--高质量的CSS
  6. How Ironic Inspector Works
  7. android实现前置后置摄像头相互切换
  8. 第六篇:python基础_6 内置函数与常用模块(一)
  9. Redis集群_主从配置
  10. spring项目启动报错BeanFactory not initialized or already closed