一.求两个数最大公约数。
例如:3,6 输出3
思路:公约数是这两个数除以这个数没有余数,而a与b的最大公约数可以转换为a与b的余数和a,b之间较小值的公约数。当余数为0时,余数所除的分母即为最大公约数
代码:
int GetCD(int a,int b)
{
int ret = a%b;
while(ret!=0)
{
a = b;
b = ret;
ret = a%b;
}
return b;
}
int main()
{
int a,b;
cin>>a>>b;
cout<<GetCD(a,b)<<endl;
}
二.求两个数最小公倍数
例如 3,4 输出12
思路:最小公倍数 = 两数相乘除以最大公约数。有了这个公式,代码就很好写了。
代码:
int GetCD(int a,int b)
{
int ret = a%b;
while(ret!=0)
{
a = b;
b = ret;
ret = a%b;
}
return b;
}
int main()
{
int a,b;
cin>>a>>b;
cout<<a*b/GetCD(a,b)<<endl;
}