您的位置:首页 > 其它

cf 75c Modified GCD

2015-10-24 12:09 429 查看
#include <iostream>
#include <cstdio>
using namespace std;
int gcd(int a,int b)
{
int t;
if(a<b)
{
t=a;a=b;b=t;
}
while(t=a%b)
{
a=b;
b=t;
}
return b;
}
int main()
{
int a,b,x,y,n,c,d;
scanf("%d%d",&x,&y);
scanf("%d",&n);
int tmp=gcd(x,y);
bool flag;
int ans;
while(n--)
{
flag=false;
scanf("%d%d",&a,&b);
c=tmp/a;d=(tmp-1)/b+1;
if(b-a<d-c)
{
for(int i=b;i>=a;i--)
{
if(tmp%i==0)
{
ans=i;
flag=true;
break;
}
}
}
else
{
for(int i=d;i<=c;i++)
{
if(tmp%i==0)
{
ans=tmp/i;
flag=true;
break;
}
}
}
if(flag)
printf("%d\n",ans);
else
printf("-1\n");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: