//hdu_2.1.5 被阴了一招,已知a,b,求最小的c满足gcd(a,c)=b,b!=c;一下子想到不就是2*b吗
//没想到就不一定是2b啊。。。不如a=6b,gcd(6b,2b)明显是2*b而不是b啊,具体a=12,b=; c=14才可以哪
#include<iostream>
using namespace std;
int gcd(int a,int b)
{
return b==0?a:gcd(b,a%b);
}
int main()
{
int a,b,c,t;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&a,&b);
c=2*b;
while(gcd(a,c)!=b)
{
c+=b;
}
printf("%d\n",c);
}
return 0;
}
又见GCD
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 660 Accepted Submission(s): 365
//hdu_2.1.5 被阴了一招,已知a,b,求最小的c满足gcd(a,c)=b,b!=c;一下子想到不就是2*b吗
//没想到就不一定是2b啊。。。不如a=6b,gcd(6b,2b)明显是2*b而不是b啊,具体a=12,b=; c=14才可以哪
#include<iostream>
using namespace std;
int gcd(int a,int b)
{
return b==0?a:gcd(b,a%b);
}
int main()
{
int a,b,c,t;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&a,&b);
c=2*b;
while(gcd(a,c)!=b)
{
c+=b;
}
printf("%d\n",c);
}
return 0;
}
Problem Description
有三个正整数a,b,c(0<a,b,c<10^6),
该博客探讨了如何找到最小的整数c,使得GCD(a,c)等于给定的b,其中b不等于c。通过一个具体的例子展示了当a=6b时,简单的2b可能不满足条件,而是需要通过迭代找到正确的c值。博主提供了C++代码实现,用于求解这一问题。"
130377011,10035150,智慧企业大数据精细化运营建设方案,"['大数据', '智慧企业运营', '业务优化', '数据驱动', '项目方案']
订阅专栏 解锁全文
224

被折叠的 条评论
为什么被折叠?



