import java.util.*;
class Codechef {
static final int N = 200000;
static ArrayList
<Integer
>[] fac
= new ArrayList[N
];
static {
pre();
}
public static void main
(String[] args
) { Scanner sc
= new Scanner
(System.
in); int t = sc.nextInt();
while (t-- > 0) {
int n = sc.nextInt();
int[] a = new int[n];
int[] b = new int[n];
for (int i = 0; i < n; i++) a[i] = sc.nextInt();
for (int i = 0; i < n; i++) b[i] = sc.nextInt();
System.
out.
println(solve
(a, b
)); }
sc.close();
}
static void pre() {
for (int i = 0; i < N; i++) fac[i] = new ArrayList<>();
for (int i = 2; i < N; i++)
for (int j = i; j < N; j += i)
fac[j].add(i);
}
static int solve(int[] a, int[] b) {
int n = a.length;
HashMap
<Integer, Integer
> map
= new HashMap
<>(); int Ecnt = 0;
for (int num : a) {
for (int p : fac[num]) {
if (map.containsKey(p)) return 0; // shared factor >1 found
}
for (int p : fac[num]) {
map.put(p, map.getOrDefault(p, 0) + 1);
}
if (num%2 == 0) Ecnt++;
}
if (Ecnt == 1) return 1;
for (int i = 0; i < n; i++) {
int num = a[i];
// Remove a[i]'s factors
for (int p : fac[num]) {
map.put(p, map.get(p) - 1);
if (map.get(p)==0) map.remove(p);
}
int found = 0;
for (int p : fac[num+1]) {
if (map.containsKey(p)) {
found=1;
break;
}
}
if (found==1) return 1; // 1 ops is suff
// Restore a[i]'s factors
for (int p : fac[num])
map.put(p, map.getOrDefault(p, 0) + 1);
}
// Nothing works → need 2 ops
return 2;
}
static int gcd(int a, int b) {
while (b != 0) {
int t = b;
b = a % b;
a = t;
}
return a;
}
}
aW1wb3J0IGphdmEudXRpbC4qOwoKY2xhc3MgQ29kZWNoZWYgewogICAgc3RhdGljIGZpbmFsIGludCBOID0gMjAwMDAwOwogICAgc3RhdGljIEFycmF5TGlzdDxJbnRlZ2VyPltdIGZhYyA9IG5ldyBBcnJheUxpc3RbTl07CgogICAgc3RhdGljIHsKICAgICAgICBwcmUoKTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICAgICAgU2Nhbm5lciBzYyA9IG5ldyBTY2FubmVyKFN5c3RlbS5pbik7CiAgICAgICAgaW50IHQgPSBzYy5uZXh0SW50KCk7CiAgICAgICAgd2hpbGUgKHQtLSA+IDApIHsKICAgICAgICAgICAgaW50IG4gPSBzYy5uZXh0SW50KCk7CiAgICAgICAgICAgIGludFtdIGEgPSBuZXcgaW50W25dOwogICAgICAgICAgICBpbnRbXSBiID0gbmV3IGludFtuXTsKICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIGFbaV0gPSBzYy5uZXh0SW50KCk7CiAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSBiW2ldID0gc2MubmV4dEludCgpOwogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oc29sdmUoYSwgYikpOwogICAgICAgIH0KICAgICAgICBzYy5jbG9zZSgpOwogICAgfQoKICAgIHN0YXRpYyB2b2lkIHByZSgpIHsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IE47IGkrKykgZmFjW2ldID0gbmV3IEFycmF5TGlzdDw+KCk7CiAgICAgICAgZm9yIChpbnQgaSA9IDI7IGkgPCBOOyBpKyspCiAgICAgICAgICAgIGZvciAoaW50IGogPSBpOyBqIDwgTjsgaiArPSBpKQogICAgICAgICAgICAgICAgZmFjW2pdLmFkZChpKTsKICAgIH0KCiAgICBzdGF0aWMgaW50IHNvbHZlKGludFtdIGEsIGludFtdIGIpIHsKICAgICAgICBpbnQgbiA9IGEubGVuZ3RoOwogICAgICAgIEhhc2hNYXA8SW50ZWdlciwgSW50ZWdlcj4gbWFwID0gbmV3IEhhc2hNYXA8PigpOwogICAgICAgIGludCBFY250ID0gMDsKICAgICAgICBmb3IgKGludCBudW0gOiBhKSB7CiAgICAgICAgICAgIGZvciAoaW50IHAgOiBmYWNbbnVtXSkgewogICAgICAgICAgICAgICAgaWYgKG1hcC5jb250YWluc0tleShwKSkgcmV0dXJuIDA7IC8vIHNoYXJlZCBmYWN0b3IgPjEgZm91bmQKICAgICAgICAgICAgfQogICAgICAgICAgICBmb3IgKGludCBwIDogZmFjW251bV0pIHsKICAgICAgICAgICAgICAgIG1hcC5wdXQocCwgbWFwLmdldE9yRGVmYXVsdChwLCAwKSArIDEpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChudW0lMiA9PSAwKSBFY250Kys7CiAgICAgICAgfQoKICAgICAgICBpZiAoRWNudCA9PSAxKSByZXR1cm4gMTsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICAgICBpbnQgbnVtID0gYVtpXTsKICAgICAgICAgICAgLy8gUmVtb3ZlIGFbaV0ncyBmYWN0b3JzCiAgICAgICAgICAgIGZvciAoaW50IHAgOiBmYWNbbnVtXSkgewogICAgICAgICAgICAgICAgbWFwLnB1dChwLCBtYXAuZ2V0KHApIC0gMSk7CiAgICAgICAgICAgICAgICBpZiAobWFwLmdldChwKT09MCkgbWFwLnJlbW92ZShwKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpbnQgZm91bmQgPSAwOwogICAgICAgICAgICBmb3IgKGludCBwIDogZmFjW251bSsxXSkgewogICAgICAgICAgICAgICAgaWYgKG1hcC5jb250YWluc0tleShwKSkgewogICAgICAgICAgICAgICAgICAgIGZvdW5kPTE7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGZvdW5kPT0xKSByZXR1cm4gMTsgLy8gMSBvcHMgaXMgc3VmZgogICAgICAgICAgICAvLyBSZXN0b3JlIGFbaV0ncyBmYWN0b3JzCiAgICAgICAgICAgIGZvciAoaW50IHAgOiBmYWNbbnVtXSkKICAgICAgICAgICAgICAgIG1hcC5wdXQocCwgbWFwLmdldE9yRGVmYXVsdChwLCAwKSArIDEpOwogICAgICAgIH0KCiAgICAgICAgLy8gTm90aGluZyB3b3JrcyDihpIgbmVlZCAyIG9wcwogICAgICAgIHJldHVybiAyOwogICAgfQoKICAgIHN0YXRpYyBpbnQgZ2NkKGludCBhLCBpbnQgYikgewogICAgICAgIHdoaWxlIChiICE9IDApIHsKICAgICAgICAgICAgaW50IHQgPSBiOwogICAgICAgICAgICBiID0gYSAlIGI7CiAgICAgICAgICAgIGEgPSB0OwogICAgICAgIH0KICAgICAgICByZXR1cm4gYTsKICAgIH0KfQo=