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=