CSP-J 2022 解密 - 寻找 RSA 密钥对
[CSP-J 2022] 解密
题目描述
给定一个正整数 k,有 k 次询问,每次给定三个正整数 ni, ei, di,求两个正整数 pi, qi,使 ni = pi × qi、ei × di = (pi - 1)(qi - 1) + 1。
输入格式
第一行一个正整数 k,表示有 k 次询问。
接下来 k 行,第 i 行三个正整数 ni, di, ei。
输出格式
输出 k 行,每行两个正整数 pi, qi 表示答案。
为使输出统一,你应当保证 pi ≤ qi。
如果无解,请输出 'NO'。
样例 #1
样例输入 #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 ≤ 105,对于任意的 1 ≤ i ≤ k,1 ≤ ni ≤ 1018,1 ≤ ei × di ≤ 1018 ,1 ≤ m ≤ 109。
| 测试点编号 | k ≤ | n ≤ | m ≤ | 特殊性质 | | :----------: | :----------: | :----------: | :----------: | :----------: | | $1$ | $10^3$ | $10^3$ | $10^3$ | 保证有解 | | $2$ | $10^3$ | $10^3$ | $10^3$ | 无 | | $3$ | $10^3$ | $10^9$ | $6 imes 10^4$ | 保证有解 | | $4$ | $10^3$ | $10^9$ | $6 imes 10^4$ | 无 | | $5$ | $10^3$ | $10^9$ | $10^9$ | 保证有解 | | $6$ | $10^3$ | $10^9$ | $10^9$ | 无 | | $7$ | $10^5$ | $10^{18}$ | $10^9$ | 保证若有解则 p=q | | $8$ | $10^5$ | $10^{18}$ | $10^9$ | 保证有解 | | $9$ | $10^5$ | $10^{18}$ | $10^9$ | 无 | | $10$ | $10^5$ | $10^{18}$ | $10^9$ | 无 |
Test Input Reasoning:
本组数据考察k的边界情况。
当k=1时,只有一次询问。
此时n1、e1、*d1*的取值范围较小,可以任意取值,可以保证有解。
为了方便计算,取n1=2,e1=1,d1=1。
原文地址: https://www.cveoy.top/t/topic/qvU8 著作权归作者所有。请勿转载和采集!