cf 75 C(gcd)

来源:互联网 发布:小米f码淘宝骗局 编辑:程序博客网 时间:2024/05/16 11:17

         

              链接:http://codeforces.com/problemset/problem/75/C


    求出a,b的gcd c,求出c的因子,判断是否在区间中

#include <bits/stdc++.h>using namespace std;int gcd(int a,int b){    return b==0?a:gcd(b,a%b);}int arr[10000];int main(){    int a,b,c;    scanf("%d%d",&a,&b);    c=gcd(a,b);    int cnt=0;    for(int i=1;i*i<=c;i++)    {        if(c%i==0)        {            arr[cnt++]=i;            if(c/i!=i)                arr[cnt++]=c/i;        }    }    int n;    sort(arr,arr+cnt);    scanf("%d",&n);    while(n--)    {        int l,r,flag=0;        scanf("%d%d",&l,&r);        for(int i=cnt-1;i>=0;i--)        {            if(arr[i]>=l&&arr[i]<=r)            {                flag=1;                printf("%d\n",arr[i]);                break;            }        }        if(!flag) puts("-1");    }    return 0;}


0 0
原创粉丝点击