您的位置:首页 > 其它

HDU 2504 又见GCD

2017-03-02 20:45 176 查看
这道题就是考虑详细一点,要找的数首先是b的倍数,大于b,其次就是判断b是不是c和a的最大公约数,当b=a是c就是b的两倍。

#include<stdio.h>
#include<string.h>
bool pr(int a,int b)
{
int i,j;
j=a>b?b:a;
for(i=2;i<=j;i++)
if(a%i==0&&b%i==0)
return 1;
return 0;
}
int main()
{
int a,b,c,i,j,n;
scanf("%d",&n);
while(n--)
{
scanf("%d%d",&a,&b);
j=0;
if(a==b)
{
printf("%d\n",2*b);
continue;
}
for(i=b+b;i<=1000000;i+=b)
{
if(a%i&&i%a)
{
if(pr(a/b,i/b))
continue;
c=i;
break;
}
}
printf("%d\n",c);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ACM