|
题目链接:
huangjing
题意: 求出两个数的第k大的GCD 思路: 首先求出最大公约数,我最开始的思路是打一个很大的素数表,然后不断的进行除,求出第k大的,但是一直re,后来知道可以直接把最大公约数的约数全部求出来,排序即可。。然后因为约数不确定,所以stl里的vector是个不错的选择。 思路:
Revenge of GCD
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 933 Accepted Submission(s): 282
Problem Description 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
3
2 3 1
2 3 2
8 16 3
Sample Output
1
-1
2
Source BestCoder Round #10
Recommend heyang | We have carefully selected several similar problems for you: 5041 5040 5039 5037 5036
代码:
#include
#include
#include
#include
#include
|