思路是根据题目推算出 n−ed=p+q−2 ,然后先判断是否有解,枚举 p 和 q ,然后如果 p∗q=n ,就输出。
#include <bits/stdc++.h>
using namespace std;
int t,n,e,d;
int main() {
cin >> t;
while(t--){
scanf("%d %d %d",&n,&e,&d);
if(n-e*d < 0){
cout << "NO" << endl;
continue;
}int p = n-e*d+2;
for(int i = 1; i < p+1/2; i++){
int j = p - i;
if(i * j == n){
cout << i << " " << j << endl;
p = 0;
break;
}
}
if(p == n-e*d+2) cout << "NO" << endl;
}
return 0;
}