#T0083. 公约数公倍数配对
0
公约数公倍数配对
题目描述
给定正整数 和 ,请统计有多少对有序正整数对 同时满足:
有序的含义是:当 时, 与 算两对。
共有 组询问,对每组询问输出答案。
输入格式
第一行一个整数 ,表示询问组数。
接下来 行,每行两个正整数 ,用空格分隔。
输出格式
行,每行一个整数,表示满足条件的有序数对数量。若不存在这样的数对,输出 0。
样例输入1
2
6 72
5 8
样例输出1
4
0
样例输入2
2
2 60060
1 1
样例输出2
64
1
数据范围与约定
- 保证答案不超过
提示
如果 不是 的倍数,显然无解。
否则令 ,并设 。代入两个条件可以得到:
也就是说,要把 的每个质因子(连同它的完整幂次)整个分给 或整个分给 :因为 ,同一个质数不能两边都有。
设 的不同质因子个数为 (只数有几种质数,不数幂次),每个质因子有“分给 ”和“分给 ”两种选择,于是:
用试除法分解 ,每发现一个新的质因子就让答案乘以 即可。特别地, 时 ,答案为 (数对 )。
冀公网安备13098402000493号