题目链接:hdu 4497 GCD and LCM
题目大意:给出三个数的最大公约数和最小公倍数,问说有多少种三个数满足。
解题思路:首先用k=l/g,剩下的数即为三个中还需要存在的因子的乘积。然后将k分解成质因子;
以6 72为例,k = 72/6=12,k分解成质因子为2,2,3,不同因子间肯定是互相不影响的,只要计算出每种因子的放法,相乘即为总数。
现在考虑2这个因子,总共有两个c=2.首先可以确定的是三个数中肯定有一个数包含因子为2^c,所以C(3,1)选中一个为该数;
然后剩下两个位置,一个位置肯定不能含有该因子,否则会影响最大公约数的值,所以C(2,1)选中一个位置不能有该因子;
那么最后剩下的一个位置就有1~c-1和0两种可能;并且0是比较特殊的,只会有一种而不是两种,如果这里不单独考虑,则在C(2,1)那步将重复计算两个位置均为空的情况。
然后还有一个比较特殊的就是存在两个位置为2^c,单独考虑C(3,2);
最后公示化简为6*c。

< http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PC9wPgo8cHJlIGNsYXNzPQ=="brush:java;">#include