博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vector、set 练习 k-th divisor
阅读量:5023 次
发布时间:2019-06-12

本文共 1214 字,大约阅读时间需要 4 分钟。

k-th divisor

 

You are given two integers n and k. Find k-th smallest divisor of n, or report that it doesn't exist.

Divisor of n is any such natural number, that n can be divided by it without remainder.

Input

The first line contains two integers n and k (1 ≤ n ≤ 10151 ≤ k ≤ 109).

Output

If n has less than k divisors, output -1.

Otherwise, output the k-th smallest divisor of n.

Example

Input
4 2
Output
2
Input
5 3
Output
-1
Input
12 5
Output
6 代码实现:
1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 using namespace std; 8 int main() 9 {10 set
a;11 long long int n,k;12 long long int p1,pp;13 scanf("%lld%lld",&n,&k);14 pp=sqrt(n);15 for(int i=1; i<=pp; i++)16 {17 p1=n%i;18 if(p1==0)19 {20 a.insert(n/i);21 a.insert(i);22 }23 }24 vector
v;25 insert_iterator
> in_it(v, v.begin());26 copy(a.begin(), a.end(), in_it);27 //printf("%d\n",v.size());28 if(k>v.size())29 printf("-1\n");30 31 else32 {33 printf("%lld\n", v[k-1]);34 }35 36 return 0;37 }

 

 

转载于:https://www.cnblogs.com/2016024291-/p/7043896.html

你可能感兴趣的文章
iptables 网址转译 (Network address translation,NAT)
查看>>
ios __block typeof 编译错误解决
查看>>
android 插件形式运行未安装apk
查看>>
ios开发之 manage the concurrency with NSOperation
查看>>
Android权限 uses-permission
查看>>
NSEnumerator用法小结
查看>>
vim如何配置go语言环境
查看>>
机器学习好网站
查看>>
python 中的 sys , os 模块用法总结
查看>>
解题:国家集训队 Middle
查看>>
响应者链
查看>>
指针从函数内部带回返回值
查看>>
在使用webView播放flash或视频文件时无法关闭声音的问题
查看>>
redhat 7 源码安装 mysql5.5.49
查看>>
CCP浅谈
查看>>
NAT虚拟网络配置
查看>>
c#部分---需要实例化的内容;
查看>>
销售类
查看>>
技术项目,问题
查看>>
线程池总结
查看>>