代码:
#include<iostream>
#include<set>
using namespace std;
set<pair<int,int>> Haoshu(int x) {
set<pair<int,int>> s;
for(int i=1; i*i<x; i++) {
for(int j=i+1; j*j<x; j++) {
if((i+j)*(i+j)-i*j==x) s.insert(make_pair(i,j));
}
}
return s;
}
void print(set<pair<int,int>> s){
for(auto it=s.begin(); it!=s.end(); it++)
cout<<it->first<<" "<<it->second<<endl;
}
int main() {
int n,x;
cin>>n;
for(int l=0; l<n; l++) {
cin>>x;
set<pair<int,int>> s=Haoshu(x);
if(s.size()) {
cout<<"Yes"<<endl;
print(s);
} else {
cout<<"No ";
while(1) {
x++;
s=Haoshu(x);
if(s.size()) {
cout<<x<<endl;
print(s);
break;
}
}
}
}
return 0;
}