RT,不用会WA了最后一个点
#include<bits/stdc++.h>
#define rg register int
#define int long long
using namespace std;
int a[21],b[21];
inline int ny(int a,int b,int &x,int &y){
if(b==0){
x=1;y=0;
return x;
}
int t=ny(b,a%b,x,y);
x=y;
y=t-(a/b)*y;
return x;
}
inline int mul(int x,int y,int mod){
if(x==0 and y==0)return 0;
int res=0;
for(;y;y>>=1,x=(x<<1)%mod)if(y&1)res=(res+x)%mod;
return res;
}
inline int read(){
char c=getchar();
int s=0,f=1;
while(c<'0' or c>'9'){
if(c=='-')f=-1;
c=getchar();
}
while(c>='0' and c<='9'){
s=(s<<1)+(s<<3)+c-'0';
c=getchar();
}
return s*f;
}
signed main(){
int k,M=1,x,y,ans=0;
k=read();
for(rg i=1;i<=k;i++){
a[i]=read();
}
for(rg i=1;i<=k;i++){
b[i]=read();
M*=b[i];
}
for(rg i=1;i<=k;i++){
ans+=(mul(a[i],(M/b[i]),M)*ny(M/b[i],b[i],x,y))%M;
ans%=M;
}
while(ans<0)ans+=M;
printf("%lld\n",ans%M);
return 0;
}