题目描述
给定正整数 k,有 k 次询问。每次询问给定三个正整数 ni,di,ei,请你求出两个正整数 pi,qi,满足 ni=pi×qi,且 ei×di=(pi−1)(qi−1)+1。
如果存在解,输出 pi,qi(保证 pi≤qi);否则输出 NO。
输入格式
第一行一个正整数 k。
接下来 k 行,每行三个正整数 ni,di,ei。
输出格式
共 k 行。对于每次询问,若存在解,输出两个正整数 pi,qi,中间用一个空格隔开;否则输出 NO。
样例
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
2 385
NO
NO
NO
11 78
3 241
2 286
NO
NO
6 88
数据范围与提示
- 对于 100% 的数据:1≤k≤105,1≤ni≤1018,1≤ei×di≤1018。
- 记 m=n−e×d+2,保证 1≤m≤109。
- 提示:由 e×d=(p−1)(q−1)+1 及 n=pq 可推出 p+q=n−e×d+2=m,再利用一元二次方程求根公式判断是否有正整数解。