hdu-5019

来源:互联网 发布:淘宝食品代理公司注册 编辑:程序博客网 时间:2024/06/15 19:32

第二次做这个题了...


#include <iostream>#include <algorithm>#include <cmath>#include <stdio.h>using namespace std;long long gcd(long long a, long long b){    long long r = a%b;    while (r)    {        a = b;        b = r;        r = a%b;    }    return b;}long long arr[200010] = { 0 };int main(){    int t;    scanf ("%d",&t);    while (t--)    {        long long a, b;        long long  c;        scanf("%I64d%I64d%I64d",&a,&b,&c);        long long d = gcd(a, b);        int counter = 0;        long long  i;        for (i = 1; i*i <=d ; ++i)        {            if (d%i == 0)            {                arr[counter++] = i;                if (i*i!=d)                {                    arr[counter++] = d / i;                }            }        }        sort(arr, arr + counter);        if (c > counter)        {            printf("-1\n");        }        else        {            printf("%I64d\n",arr[counter - c]);        }    }    return 0;}


0 0
原创粉丝点击