题目描述
输入2个正整数x0,y0(2≤x0<100000,2≤y0<=1000000),求出满足下列条件的P,QP,Q的个数
条件:
-
P,Q是正整数
-
要求P,Q以x0为最大公约数,以y0为最小公倍数.
试求:满足条件的所有可能的2个正整数的个数.
输入
2个正整数x0,y0
输出
1个数,表示求出满足条件的P,Q的个数
输入样例
3 60
输出样例
4
分析
最大公约数是x,所以设这两个数为x * k1 , x * k2 (其中k1,k2互质),x * k1 * k2 = y , 所以 k1 * k2 = y / x (如果y / x 除不尽意味着没答案)
然后只要穷举k1 , k2 的值即可(k1 * k2 = y / x 是轮换式,不妨设 k1 < k2 , 然后从1 ~ floor(sqrt(y0 / x0))穷举)
如果k1,k2 互质 , 那就说明找到 2 组解了,将 sum += 2 。</