[R20E]数对谜题 - 代码源竞赛平台
时空限制
1S/512M
题目描述
给定两个正整数 X 和 Y,请你找出所有满足以下条件的有序整数对 (A,B)(其中 A 和 B 均为正整数):
-
A−B=X
-
gcd(A,B)lcm(A,B)=Y
输出所有满足条件的 (A,B)。 如果有多个 (A,B) 满足条件,按 A 的大小升序输出。
格式
输入格式
本题有多组测试数据。
第一行一个整数 T,表示测试数据的组数。
接下来 T 行,每行包含两个正整数 X 和 Y,含义如上所述。
输出格式
对于每组数据,先输出一个整数 K,表示满足条件的 (A,B) 的方案数。
接下来 K 行,每行输出两个用空格隔开的正整数 A 和 B,表示一个满足条件的解。
如果没有解,仅输出一行 0。
样例
样例输入 #1
1
240 441
样例输出 #1
1
294 54
样例解释 #1
294−54=240=X,$\dfrac{\mathrm{lcm}(294, 54)}{\gcd(294, 54)} = \dfrac{2646}{6} = 441 = Y$。
数据规模
对于 20% 的数据,保证符合条件的解满足 1≤A,B≤1000。
对于 100% 的数据,满足 1≤T≤10,1≤X≤109,1≤Y≤1012,且 Y×X2≤1018。