#include<bits/stdc++.h>
#include<map>
using namespace std;
#define ll long long
#define mn 100000
map<long long,int> HashOnMap;
ll a[mn], p[mn], b[mn];
void exgcd(ll a, ll b, ll& d, ll& x, ll& y) {
if (!b) { d = a; x = 1; y = 0; }
else { exgcd(b, a % b, d, y, x); y -= x * (a / b); }
}
ll inv(ll a, ll p) {
ll d, x, y;
exgcd(a, p, d, x, y);
return d == 1 ? (x + p) % p : -1;
}
int main() {
ll T;
cin >> T;
while (T--) {
long long k, SumOfB = 0, TimesOfA = 1;
cin >> k;
for (ll i = 1; i <= k; ++i) cin >> a[i];
for (ll i = 1; i <= k; ++i) cin >> b[i];
for (ll i = 1; i <= k; ++i) cin >> p[i];
bool ok = 1;
for (ll i = 1; i <= k; ++i) {
TimesOfA *= a[i];
SumOfB *= a[i];
SumOfB += b[i];
if (TimesOfA % p[i] == 0) {
if (SumOfB % p[i]!=0) {
ok = 0;
break;
}
}
else {
if (HashOnMap.count(p[i])) {
if ((HashOnMap[p[i]] - ((inv(TimesOfA, p[i]) % p[i] * (SumOfB % p[i])) % p[i])) % p[i]!=0) {
ok = 0;
break;
}
}
else {
HashOnMap[p[i]] = ((inv(TimesOfA, p[i]) % p[i] * (SumOfB % p[i])) % p[i]);
}
}
}
cout << ((ok) ? ("Yes\n"):("No\n"));
}
}