#include <iostream>
using namespace std;
long long x,y;
void exOJLD(long long a, long long b, long long &x, long long &y){
if(b == 0){
x = 1;
y = 0;
}else{
long long x1, y1;
exOJLD(b, a%b, x1, y1);
if(a*b < 0){
x = - y1;
y = a/b*y1 - x1;
}else{
x = y1;
y = x1 - a/b* y1;
}
}
}
long long calSYDL(long long a[], long long m[], long long k){
long long N[k];
long long mm = 1;
long long result = 0;
for(long long i = 0; i < k; i++){
mm *= m[i];
}
for(long long j = 0; j < k; j++){
long long L, J;
exOJLD(mm/m[j], -m[j], L, J);
N[j] = m[j] * J + 1;
N[j] = mm/m[j] * L;
result += N[j]*a[j];
}
return (result % mm + mm) % mm;
}
long long fa[10000010],fm[10000010];
int main(){
long long n;
cin>>n;
for(long long i=0;i<n;i++){
cin>>fa[i];
}
for(long long i=0;i<n;i++){
cin>>fm[i];
}
cout<<calSYDL(fa, fm, n)<<endl;
return 0;
}