#P0092. 最小公倍数

最小公倍数

题目描述

给定两个正整数 a,ba, ba,ba, b 的最小公倍数。

我们会用到以下两个定理

  1. gcd(a,b)=gcd(b,amodb)\text{gcd}(a, b) = \text{gcd}(b, a \mod b), gcd=greatest common divisorgcd = greatest\ common\ divisor 即最大公约数。
  2. lcm(a,b)=a×bgcd(a,b)lcm(a,b)=\frac{|a \times b|}{\text{gcd}(a,b)} lcm=least common multiplelcm = least\ common\ multiple 即最小公倍数。

定理 1:

gcd(a,b)=gcd(b,amodb)\text{gcd}(a, b) = \text{gcd}(b, a \mod b)

定理 2:

lcm(a,b)=a×bgcd(a,b)lcm(a,b)=\frac{|a \times b|}{\text{gcd}(a,b)}

证明 定理 1:

  1. amodb=akba \mod b = a - k \cdot b,其中 k=a/bk = \lfloor a / b \rfloor(向下取整)。

  2. dd(a,b)(a, b) 的公约数:

    • 则知 dad \mid adbd \mid b
    • 则易知,d(akb)d \mid (a - k \cdot b),即 dd 也是 (b,amodb)(b, a \mod b) 的公约数。
  3. dd(b,amodb)(b, a \mod b) 的公约数:

    • 则知 dbd \mid bd(akb)d \mid (a - k \cdot b)

    • 则,d(akb+kb)d \mid (a - k \cdot b + k \cdot b),即 dad \mid a

    • 因此,dd 同时整除 aabb,所以 dd 也是 (a,b)(a, b) 的公约数。

  4. 综上所述,(a,b)(a, b) 的公约数集合与 (b,amodb)(b, a \mod b) 的公约数集合相同,因此它们的最大公约数也相同。

证毕。

证明 定理 2:

d=gcd(a,b)d=\text{gcd}(a, b),则可以将 a,ba,b 表示为 a=d×ma=d\times mb=d×nb=d\times n, 其中 mmnn 是互质的整数即 gcd(m,n)=1\text{gcd}(m, n)=1

根据 lcmlcm 的定义,我们需要找到最小的正整数 kk, 使得 kk 可以被 aabb 整除。

aabb 的形式,可以得到:

lcm(a,b)=lcm(d×m,d×n)lcm(a,b)=lcm(d\times m,d\times n)

由于 mmnn 互质,所以我们有:

lcm(m,n)=m×nlcm(m,n)=m\times n

将上述表达式代入可得:

$$lcm(a,b)=\frac{|a \times b|}{\text{gcd}(a,b)} = \frac{|(d \times m) \times (d \times n)|}{d} $$

简化为:

$$lcm(a,b)=\frac{|d^2 \times m \times n|}{d} =|d\times m\times n|$$

因此,最终我们可以写出:

lcm(a,b)=d×m×nlcm(a,b)=d\times m\times n

结合 gcdgcd 的定义,我们可以得到:

gcd(a,b)=dgcd(a,b)=d

因此,原关系可以表示为:

$$lcm(a,b)\times gcd(a,b)=(d\times m\times n)\times d=d^2\times m\times n $$

aabb 的表达式,我们可以看到:

$$|a\times b|=|(d\times m)\times (d\times n)|=d^2\times m\times n $$

因此我们得出:

lcm(a,b)×gcd(a,b)=a×blcm(a,b)×gcd(a,b)=∣a×b∣

即:

lcm(a,b)=a×bgcd(a,b)lcm(a,b)=\frac{|a \times b|}{\text{gcd}(a,b)}

证毕。

输入格式

第一行读入两个数字 a,ba, b

输出格式

共一行,表示答案

数据范围

1<=a,b<=1091 <= a,b <=10^9

输入样例:

3 5

输出样例:

15