#include #include #include using namespace std; const int LIM=100001; bool isp[LIM+1]; vectorps; map >mp; main() { for(int i=2;i<=LIM;i++)if(!isp[i]) { for(int j=i+i;j<=LIM;j+=i)isp[j]=true; if(i%4!=3)ps.push_back(i); } int Q; cin>>Q; for(;Q--;) { long X;cin>>X;X=X*X+1; vectorans; if(mp.find(X)!=mp.end())ans=mp[X]; else { for(int p:ps) { if((long)p*p>X)break; if(X%p==0) { while(X%p==0) { ans.push_back(p); X/=p; } } } if(X>1) { ans.push_back(X); } } for(int i=0;i