#P17161. 数论对称差

数论对称差

数论对称差

来源:洛谷 P17161([入门赛 #50] 数论对称差)

题目描述

扶苏有两个整数 x,yx, y。她定义 x,yx,y 的数论对称差是恰好满足如下两个条件之一的所有质数 pp 的乘积:

  • ppxx 的质因子,但不是 yy 的质因子;
  • ppyy 的质因子,但不是 xx 的质因子。

如果这样的 pp 不存在,定义 xxyy 的数论对称差是 11

例如,8899 的数论对称差是 2×3=62 \times 3 = 6,因为 2288 的质因子,但不是 99 的质因子;3399 的质因子,但不是 88 的质因子。

给定两个正整数,请你帮扶苏求出它们的数论对称差。

输入格式

本题单个测试点里有多组测试数据。第一行是一个整数,表示测试数据的数量 TT

对每组数据,输入只有一行两个整数 x,yx, y

输出格式

对每组数据,输出一行一个整数表示答案。

样例 #1

样例输入 #1

1
8 9

样例输出 #1

6

样例解释

符合要求的质数 pp 包括 2233

样例 #2

样例输入 #2

1
6 12

样例输出 #2

1

样例解释

661212 的质因子集合都是 {2,3}\{2,3\},不存在符合要求的质数 pp,答案为 11

提示

数据规模与约定

测试点编号 T=T= 特殊约定
121 \sim 2 1111 xxyy 互质
33 103103 x,y10x, y \le 10
4,54,5 100004100004 x,y100x, y \le 100
6,76,7 100006100006 x,y105x, y \le 10^5
8,9,108,9,10 10000001000000
  • 100%100\% 的数据,1T1061 \le T \le 10^62x,y1072 \le x, y \le 10^7

提示

  • 请注意大量数据输出对程序效率造成的影响。
  • TT 的末位数字可以帮助你快速判断输入测试点的特殊约定。
  • 线性筛预处理 10710^7 内每个数的最小质因子,然后对每个数分解出不同质因子;每个数至多 88 个不同质因子($2\cdot3\cdot5\cdot7\cdot11\cdot13\cdot17\cdot19 = 9699690 < 10^7$)。
  • 答案最大接近 101410^{14},需要用 long long

测试点数据说明

测试点 TT 特点
1 11 互质,含官方样例 (8,9)(8,9) 与各种规模
2 互质,靠近 10710^7 的大数(含大质数)
3 103 x,y10x,y \le 10,枚举全部 81 个有序对 + 重复
4 100004 x,y100x,y \le 100 随机
5 一半 y=xy=x(答案 1),一半 y=2xy=2x(奇数 xx 时答案 2)
6 100006 x,y105x,y \le 10^5 随机
7 y=x+1y=x+1 相邻数(必互质,答案 =rad(x)rad(x+1)=\mathrm{rad}(x)\mathrm{rad}(x+1)
8 1000000 全值域随机,前置边界与样例
9 全部 y=xy=x,答案恒为 1,压输出
10 混合:y=2xy=2x(答案 2)、y=xy=x(答案 1)、随机