#include<bits/stdc++.h>
#define int long long
using namespace std;
int a[3],r[3]={0,100000379,100000921},ans=0;
int calc_inv(int a,int mod){
int p=mod-2,ans=1;
for(;p;a=(a*a)%mod,p>>=1)
if(p&1)ans=(ans*a)%mod;
return ans;
}
int CRT() {
int n=1,ans=0;
for(int i=1;i<=2;i++)n=n*r[i];
for(int i=1;i<=2;i++){
int m=n/r[i];
int b=calc_inv(m,r[i]);
ans=(ans+a[i]*m*b%n)%n;
}
return (ans%n+n)%n;
}
signed main(){
int T;
cin>>T;
while(T--) {
for(int i=1;i<=2;i++){
cout<<"? "<<r[i]<<endl;
cin>>a[i];
if(a[i]==-1)exit(0);
}
cout<<"! "<<CRT()<<endl;
}
return 0;
}
每次询问一个大质数,跑 CRT