C++求最大公约数和最小公倍数

1、最大公约数(可调用库函数gcd(int a,int b))

1、辗转相除法

有两整数a和b:

① a%b得余数c

② 若c=0,则b即为两数的最大公约数

③ 若c≠0,则a=b,b=c,再回去执行

 int gcd(int a,int b)
{
   return b==0?a:gcd(b,a%b);
}

2、相减法

有两整数a和b:

① 若a>b,则a=a-b

② 若a

③ 若a=b,则a(或b)即为两数的最大公约数

④ 若a≠b,则再回去执行①

2、最小公倍数

1、最小公倍数 = 两数乘积 除以 最大公约数

你可能感兴趣的:(C++算法)