#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
inline ll read() {
ll f = 1, x = 0;
char ch = getchar();
while (ch < '0' || ch > '9') {
if (ch == '-') f = -1;
ch = getchar();
}
while (ch >= '0' && ch <= '9') {
x = x * 10 + ch - '0';
ch = getchar();
}
return x * f;
}
inline void write(ll x) {
if (x < 0) x = -x, putchar('-');
if (x > 9) write(x/10);
putchar('0'+x%10);
}
inline void writeln(ll x) {
write(x);
putchar('\n');
}
ll fastPow(ll a, ll n, ll mod) {
ll ans = 1;
a %= mod;
while (n) {
if (n & 1) ans = (ans * a) % mod;
a = (a * a) % mod;
n >>= 1;
}
return ans;
}
ll get_inv(ll a, ll mod) {
return fastPow(a, mod-2, mod);
}
ll n, a[15], m[15], M = 1, ans;
int main() {
n = read();
for (int i = 1; i <= n; i ++) a[i] = read();
for (int i = 1; i <= n; i ++) m[i] = read(), M *= m[i], a[i] = (a[i] % m[i] + m[i]) % m[i];
for (int i = 1; i <= n; i ++) {
ans += a[i] * (M / m[i]) * get_inv(M/m[i], m[i]) % M;
}
ans %= M;
writeln(ans);
return 0;
}