最大公约数、最小公倍数与算术基本定理
最大公因数和最小公倍数与素数分解式有什么联系呢?
举个例子:我们尝试分解样例中的提到的一组数12,15(最大公约数和最小公倍数分别是3和60):
12 = 2 2 ⋅ 3 1 15 = 3 1 ⋅ 5 1 12 = 2^{2} \cdot 3^{1} \\ 15 = 3^{1} \cdot 5^{1} 12=22⋅3115=31⋅51
为了方便下面的讨论,尽管12没有素因子5,15没有素因子2,但我们还是要把非共有的素因子写成0次幂的形式:
12 = 2 2 ⋅ 3 1 ⋅ 5 0 15 = 2 0 ⋅ 3 1 ⋅ 5 1 12 = 2^{2} \cdot 3^{1} \cdot 5^{0} \\ 15 = 2^{0} \cdot 3^{1} \cdot 5^{1} 12=22⋅31⋅5015=20⋅31⋅51
将两个数素数分解式中每个素因子的指数部分取两个中的最小值,就得到了两个数的最大公因数:
g c d ( 12 , 15 ) = 2 0 ⋅ 3 1 ⋅ 5 0 = 3 gcd(12,15) = 2^{0} \cdot 3^{1} \cdot 5^{0} = 3 gcd(12,15)=20⋅31⋅50=3
将两个数素数分解式中每个素因子的指数部分取两个中的最大值,就得到了两个数的最小公倍数:
l c m ( 12 , 15 ) = 2 2 ⋅ 3 1 ⋅ 5 1 = 60 lcm(12,15) = 2^{2} \cdot 3^{1} \cdot 5^{1} = 60 lcm(12,15)=22⋅31⋅51=60
因此我们可以得到如下式子:
g c d ( x , y ) ⋅ l c m ( x , y ) = x ⋅ y g c d ( x g c d ( x , y ) , y g c d ( x , y ) ) = 1 gcd(x,y) \cdot lcm(x,y) = x \cdot y \\ gcd(\frac{x}{gcd(x,y)},\frac{y}{gcd(x,y)}) = 1 gcd(x,y)⋅lcm(x,y)=x⋅ygcd(gcd(x,y)x,gcd(x,y)y)=1
例题
倒着推我们可以发现,要使 ( P , Q ) = 3 (P,Q)=3 (P,Q)=3且 [ P , Q ] = 60 [P,Q]=60 [P,Q]=60, P , Q P,Q P,Q这两个数的素数分解式必须满足下面3个条件:
- 素因子2的指数的最大值为2,最小值为0。即其中一个素数分解式中2的指数为2,而另一个为0。
- 素因子3的指数的最大值为1,最小值为1。即其中素数分解式中3的指数都是1。
- 素因子5的指数的最大值为1,最小值为0。即其中一个素数分解式中5的指数为1,而另一个为0。
我们关系的就是像2和5这样的可以变化的因子,而像3这样不能引起变化的因子我们并不关系。
寻找变化的因子,我们对 y x \frac{y}{x} xy进行素因子分解即可,如果存在因子大于0,那么我们就找到了一个变化的因子。因此这个题相当于把不同的素因子看成一个球,放进 P , Q P,Q P,Q两个箱子里,有 2 n 2^{n} 2n种方法,就是问题的答案。
如果 x x x不能整除 y y y则表示不存在这样的 P , Q P,Q P,Q。