题目描述
给定两个正整数 a,b 求 a,b 的最小公倍数。
我们会用到以下两个定理
- gcd(a,b)=gcd(b,amodb), gcd=greatest common divisor 即最大公约数。
- lcm(a,b)=gcd(a,b)∣a×b∣, lcm=least common multiple 即最小公倍数。
定理 1:
gcd(a,b)=gcd(b,amodb)
定理 2:
lcm(a,b)=gcd(a,b)∣a×b∣
证明 定理 1:
-
设 amodb=a−k⋅b,其中 k=⌊a/b⌋(向下取整)。
-
若 d 是 (a,b) 的公约数:
- 则知 d∣a 且 d∣b。
- 则易知,d∣(a−k⋅b),即 d 也是 (b,amodb) 的公约数。
-
若 d 是 (b,amodb) 的公约数:
-
则知 d∣b 且 d∣(a−k⋅b)。
-
则,d∣(a−k⋅b+k⋅b),即 d∣a。
-
因此,d 同时整除 a 和 b,所以 d 也是 (a,b) 的公约数。
-
综上所述,(a,b) 的公约数集合与 (b,amodb) 的公约数集合相同,因此它们的最大公约数也相同。
证毕。
证明 定理 2:
设 d=gcd(a,b),则可以将 a,b 表示为 a=d×m 和 b=d×n, 其中 m 和 n 是互质的整数即
gcd(m,n)=1。
根据 lcm 的定义,我们需要找到最小的正整数
k, 使得 k 可以被 a 和 b 整除。
由 a 和 b 的形式,可以得到:
lcm(a,b)=lcm(d×m,d×n)
由于 m 和 n 互质,所以我们有:
lcm(m,n)=m×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×n
结合 gcd 的定义,我们可以得到:
gcd(a,b)=d
因此,原关系可以表示为:
$$lcm(a,b)\times gcd(a,b)=(d\times m\times n)\times d=d^2\times m\times n
$$
由 a 和 b 的表达式,我们可以看到:
$$|a\times b|=|(d\times m)\times (d\times n)|=d^2\times m\times n
$$
因此我们得出:
lcm(a,b)×gcd(a,b)=∣a×b∣
即:
lcm(a,b)=gcd(a,b)∣a×b∣
证毕。
输入格式
第一行读入两个数字 a,b
输出格式
共一行,表示答案
数据范围
1<=a,b<=109
输入样例:
3 5
输出样例:
15