博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第K大的因子
阅读量:3952 次
发布时间:2019-05-24

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

In mathematics, the greatest common divisor (gcd), also known as the greatest common factor (gcf), highest common factor (hcf), or greatest common measure (gcm), of two or more integers (when at least one of them is not zero), is the largest positive integer that divides the numbers without a remainder. 

---Wikipedia 
Today, GCD takes revenge on you. You have to figure out the k-th GCD of X and Y.

Input

The first line contains a single integer T, indicating the number of test cases. 

Each test case only contains three integers X, Y and K. 
[Technical Specification] 
1. 1 <= T <= 100 
2. 1 <= X, Y, K <= 1 000 000 000 000 

Output

For each test case, output the k-th GCD of X and Y. If no such integer exists, output -1.

Sample Input

32 3 12 3 28 16 3

Sample Output

1-12

题意:

给X,Y,K求X,Y的第k大的因子。

思路:

第k的大因子一定是X,Y的最大公因子的因子,所以我们可以先求出X,Y的因子,然后暴力枚举每一个因子(O(sqrt(n))的复杂度),如果数量比k大,排序找出,否则输出-1。

上板子,今天刚找的。

#include
#include
#include
using namespace std;typedef long long ll;ll ans[2000100];ll gcd(ll a,ll b){ if(b==0)return a; return gcd(b,a%b);}ll cmp(ll a,ll b){ return a>b;}void solve(ll x,ll k){ int cnt=0; for(ll i=1;i*i<=x;i++) { if(x%i==0) { ans[cnt++]=i; if(x/i!=i) ans[cnt++]=x/i; } } if(cnt>=k) { sort(ans,ans+cnt,cmp); cout<
<
>t; while(t--) { ll x,y,k; cin>>x>>y>>k; ll g=gcd(x,y); solve(g,k); } return 0;}

 

转载地址:http://apyzi.baihongyu.com/

你可能感兴趣的文章
使用xshell对服务器上的sql文件进行操作(mysql导入Linux)
查看>>
Spirngboot 后台操作一切正常并无报错,但是前端出现404错误
查看>>
java错误:java.lang.String can not be cast to java.math.BigDecimal
查看>>
Linux导出数据库文件mysql
查看>>
xshell查看程序代码后台的动态日志
查看>>
Java 根据经纬度计算实际距离
查看>>
mysql 分页limit 语句
查看>>
微信小程序——登陆凭证校验报错{"errcode":40029,"errmsg":"invalid code, hints: [ req_id: weh8ka0297hc58 ]"}
查看>>
Java(百度地图API)使用坐标的经纬度得到具体的城市信息
查看>>
Javase->Javaee->Javaweb联系与区别
查看>>
c语言中关于int *p = &a 的解读
查看>>
解决Springboot2中无法访问在static/image/中的静态图片!终于解决啦
查看>>
牛客网华为机试——合并表记录
查看>>
算数基本定理
查看>>
Sliding Window(POJ-2823)
查看>>
A. Greed CodeForces - 892A
查看>>
最短路 HDU - 2544
查看>>
7-12 列车厢调度(25 分)
查看>>
一个人的旅行 HDU - 2066
查看>>
Reward HDU - 2647 (拓扑排序)
查看>>