Codeforces 762A

题目大意:

给定两个正整数n,k\((n \le 10^{15},k\leq10^9)\),求n的从小到大的第k个约数,无解输出-1

分析:

我们会自然而然地想到找出n的所有的约数,然后取第k个。

我们发现如果这样的话时间复杂度为\(O(\sqrt{n})\),空间复杂度为\(O(lnn)\)

所以我们暴力上就好了

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
typedef long long ll;
template<typename T>inline void read(T &x){
x=0;char ch;bool flag = false;
while(ch=getchar(),ch<'!');if(ch == '-') ch=getchar(),flag = true;
while(x=10*x+ch-'0',ch=getchar(),ch>'!');if(flag) x=-x;
}
inline ll cat_max(const ll &a,const ll &b){return a>b ? a:b;}
inline ll cat_min(const ll &a,const ll &b){return a<b ? a:b;}
ll a[2000010],cnt1;
ll b[2000010],cnt2;
int main(){
ll n,k;read(n);read(k);
for(ll i=1;i*i<=n;++i){
if(n % i == 0){
a[++cnt1] = i;
if(i*i != n) b[++cnt2] = n/i;
}
}
if(k > cnt1 + cnt2) puts("-1");
else{
if(k <= cnt1){
printf("%I64d\n",a[k]);
}else{
k -= cnt1;
printf("%I64d\n",b[cnt2-k+1]);
} }
getchar();getchar();
return 0;
}

最新文章

  1. MySQL binlog中的事件类型
  2. Title Case a Sentence
  3. MINA系列学习-mina整体介绍
  4. touch id 开发
  5. 学习进度条&lt;第一周&gt;
  6. JavaScript escape encodeURI encodeURIComponent() 函数
  7. C++调用matlab实例
  8. java 串口通信 代码
  9. Centos 下Nginx 自启动脚本
  10. spring getbean 方法分析
  11. C# ToString()和Convert.ToString()的区别
  12. iOS开发——导入第三方库引起的unknown type name &#39;NSString&#39;
  13. Java 基本文件操作
  14. Android TextView自动换行、排列错乱问题及解决
  15. Servlet】(2)有关Servlet实现的几个类:GenericServlet、HttpServlet、ServletConfig、ServletContext
  16. 函数和常用模块【day04】:函数的非固定参数(三)
  17. centos6安装python3.6.4
  18. 潭州课堂25班:Ph201805201 WEB 之 页面编写 第一课 (课堂笔记)
  19. Java 枚举类 详解
  20. BZOJ1185 [HNOI2007]最小矩形覆盖 【旋转卡壳】

热门文章

  1. shell脚本学习笔记 (流编辑器sed)
  2. java wait 和notify的用法
  3. 解决ListView滑动时出现黑边的问题
  4. 【转】【Axure学习】之短信动态验证码+图片动态验证码
  5. golang 内存池
  6. Java 集成域登陆
  7. Elipse clean后无法编译出class文件
  8. 九度OJ 1037:Powerful Calculator(强大的计算器) (大整数运算)
  9. LigerUI java SSH小例子
  10. 公司IIS 项目公布 注意点