[CSP-J 2022] 解密

题目描述

给定一个正整数 k,有 k 次询问,每次给定三个正整数 ni, ei, di,求两个正整数 pi, qi,使 ni = pi × qiei × di = (pi - 1)(qi - 1) + 1。

输入格式

第一行一个正整数 k,表示有 k 次询问。

接下来 k 行,第 i 行三个正整数 ni, di, ei

输出格式

输出 k 行,每行两个正整数 pi, qi 表示答案。

为使输出统一,你应当保证 piqi

如果无解,请输出 '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.indecode/decode2.ans

【样例 #3】

见附件中的 decode/decode3.indecode/decode3.ans

【样例 #4】

见附件中的 decode/decode4.indecode/decode4.ans

【数据范围】

以下记 m = n - e × d + 2。

保证对于 100% 的数据,1 ≤ k ≤ 105,对于任意的 1 ≤ ik,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时,只有一次询问。

此时n1e1、*d1*的取值范围较小,可以任意取值,可以保证有解。

为了方便计算,取n1=2,e1=1,d1=1。

CSP-J 2022 解密 - 寻找 RSA 密钥对

原文地址: https://www.cveoy.top/t/topic/qvU8 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录