CRT#6~#16 WA求调
查看原帖
CRT#6~#16 WA求调
524369
netlify楼主2024/10/2 20:50
#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

2024/10/2 20:50
加载中...