#include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; int main() { int T; cin >> T; for (int t = 0; t < T; ++t) { int N; cin >> N; vector A(N); vector B(N); for (int i = 0; i < N; ++i) { cin >> A[i]; } for (int i = 0; i < N; ++i) { cin >> B[i]; } vector A_copy = A; vector B_copy = B; sort(A_copy.begin(), A_copy.end()); sort(B_copy.begin(), B_copy.end()); if (A[0] != B[0] || A_copy != B_copy) { cout << "No" << endl; } else { int i = 3; bool ok = true; vector checked(N + 1, false); while (i <= N && ok) { if (checked[i]) continue; if (2 * i <= N) { for (int j = i; j <= N; j += i) { checked[j] = true; } } if (not checked[i] && A[i - 1] != B[i - 1]) { ok = false; } i += 2; } if (ok) { cout << "Yes" << endl; } else { cout << "No" << endl; } } } return 0; }