\(a={p_1} ^ {a_1} *{p_1} ^ {a_1} *..........*{p_n} ^ {a_n}\)
\(b={p_1} ^ {b_1} *{p_1} ^ {b_1} *..........*{p_n} ^ {b_n}\)
\(lcm(a,b)={p_1} ^ {max(a_1,b_1)} *{p_2} ^ {max(a_2,b_2)} *..........*{p_n} ^ {max(a_n,b_n)}=n\)
假定\(a<=b\)
所以对n进行质因数分解,计算出每个质因数的指数部分,比如其中一部分\({p_n}^k\)则说明\(max(a_n,b_n)=k\),那么如果\(a_n=k\),那么\(b_n\)有\(k+1\)种取值方法,同理如果\(b_n=k\),那么\(a_n\)有\(k+1\)种取值方法,那么对于这个质因数我们有\(2*(k+1)-1\)种取值方法,一开始\(ans=1\),对于每个质因数乘以其贡献,那么除了\(a=b=n\)的情况,其他都计算了两次,由于最后我们要的是\((a<=b)\)的方案数,那么\(ans=ans/2+1\)即可
相关文章
- 03-02CCF(地铁修建):向前星+dijikstra+求a到b所有路径中最长边中的最小值
- 03-02求LCM(a,b)=n的(a,b)的总对数(a<=b)
- 03-02WIFI无线协议802.11a/b/g/n/ac的演变以及区别
- 03-02两个不同的自然数A和B,如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。求3000以内的全部亲密数。
- 03-02指数循环节 求A的B次方模C
- 03-02hihoCoder挑战赛34 B题(快速求第k轮冒泡排序的结果)
- 03-02剑指offer 介绍一种很骚的做法 求1+2+…+n不能使用乘除法、for、while、if、else、switch、case 等关键字及条件判断语句 (A?B:C)。【简单易懂,代码可以直接运行】
- 03-02求非空二叉树b的宽度(具有结点数最多的那一层的结点个数)
- 03-02求整数A和B的二进制表示中有多少位是不同?
- 03-02【经典面试题】给定一个由 n 个整数组成的数组 list,在 list 中是否有元素 a, b, c 这样的 a + b + c = 0?找出数组中所有唯一的三元组,得出总和等于0 注:得到的解集