P6731: 解密(decode)
传统题
1.000s
时间限制
512MB
内存限制
180 提交
39 解决
【题目描述】
【题目描述】
给定一个正整数 k
,有 k
次询问,每次给定三个正整数 ni , ei , di
,求两个正整数 pi , qi
, 使 ni = pi × qi , ei × di = (pi − 1)(qi − 1) + 1
。
【输入格式】
从文件 decode.in
中读入数据。
第一行一个正整数 k
,表示有 k
次询问。
接下来 k
行,第 i
行三个正整数 ni , di , ei
。
【输出格式】
输出到文件 decode.out
中。
输出 k
行,每行两个正整数 pi , qi
表示答案。
为使输出统一,你应当保证 pi ≤ qi
。
如果无解,请输出 NO
。
【样例 1
输入】
10
770 77 5
633 1 211
545 1 499
683 3 227
858 3 257
723 37 13
572 26 11
867 17 17
829 3 263
528 4 109
【样例 1
输出】
2 385
NO
NO
NO
11 78
3 241
2 286
NO
NO
6 88
【样例 2
】
见选手目录下的 decode/decode2.in
与 decode/decode2.ans
。
【样例 3
】
见选手目录下的 decode/decode3.in
与 decode/decode3.ans
。
【样例 4
】
见选手目录下的 decode/decode4.in
与 decode/decode4.ans
。
【数据范围】
以下记 m = n − e × d + 2
。
保证对于 100% 的数据,1 ≤ k ≤ 10
5,对于任意的 1 ≤ i ≤ k,1 ≤ ni ≤ 10
18 , 1 ≤
ei × di ≤ 10
18 , 1 ≤ m ≤ 10
9。
测试点编号
|
k≤
|
n≤
|
m≤
|
特殊性质
|
1
|
103
|
103
|
103
|
保证有解
|
2
|
无
|
3
|
109
|
6×104
|
保证有解
|
4
|
无
|
5
|
109
|
保证有解
|
6
|
无
|
7
|
105
|
1018
|
保证若有解则p=q
|
8
|
保证有解
|
9
|
无
|
10
|