#include <bits/stdc++.h>
using namespace std;
#define int long long
#define ld long double
#define all(x) (x).begin(), (x).end()
#define debug(x) cerr << #x << " = " << (x) << endl;
const int MOD = 1e9 + 7;
const int INF = 1e18;
const ld PI = acos(-1.0);
int gcd(int a,int b){return b?gcd(b,a%b):a;}
int lcm(int a,int b){return a/gcd(a,b)*b;}
void solve(){
int n;cin>>n;
vector<int>arr(n),b(n);
for(int i=0;i<n;i++)cin>>arr[i];
for(int i=0;i<n;i++)cin>>b[i];
unordered_map<int,int>factors;
int maxi=0,largest_num=0,freq_even=0;
for(int i=0;i<n;i++){
if(arr[i]%2==0) freq_even++;
bool hasFactor=false;
for(int j=2;j*j<=arr[i];j++){
if(arr[i]%j==0){
hasFactor=true;
int fact1=j; int fact2=arr[i]/j;
if(fact1==fact2) factors[fact1]++;
else{
factors[fact1]++;
factors[fact2]++;
}
if(factors[fact1]>=maxi){
largest_num=fact1;
maxi=factors[fact1];
}
if(factors[fact2]>=maxi){
largest_num=fact2;
maxi=factors[fact2];
}
}
}
if(!hasFactor&&arr[i]>1){
factors[arr[i]]++;
if(factors[arr[i]]>=maxi){
largest_num=arr[i];
maxi=factors[arr[i]];
}
}
}
if(maxi>=2){
cout<<0<<endl;
return;
}
if(freq_even==1){
cout<<1<<endl;
return;
}
for(int i=0;i<n;i++){
int prev=arr[i];
bool hasFactor=false;
for(int j=2;j*j<=prev;j++){
if(prev%j==0){
hasFactor=true;
int fact1=j,fact2=prev/j;
if(fact1==fact2) factors[fact1]--;
else{
factors[fact1]--;
factors[fact2]--;
}
}
}
if(!hasFactor&&prev>1) factors[prev]--;
int curr=arr[i]+1;
maxi=0;
largest_num=0;
bool currHasFactor=false;
for(int j=2;j*j<=curr;j++){
if(curr%j==0){
currHasFactor=true;
int fact1=j;
int fact2=curr/j;
if(fact1==fact2) factors[fact1]++;
else{
factors[fact1]++;
factors[fact2]++;
}
if(factors[fact1]>=maxi){
largest_num=fact1;
maxi=factors[fact1];
}
if(factors[fact2]>=maxi){
largest_num=fact2;
maxi=factors[fact2];
}
}
}
if(!currHasFactor&&curr>1){
factors[curr]++;
if(factors[curr]>=maxi){
largest_num=curr;
maxi=factors[curr];
}
}
if(maxi>=2){
cout<<1<<endl;
return;
}
for(int j=2;j*j<=curr;j++){
if(curr%j==0){
int fact1=j;
int fact2=curr/j;
if(fact1==fact2) factors[fact1]--;
else{
factors[fact1]--;
factors[fact2]--;
}
}
}
if(!currHasFactor&&curr>1) factors[curr]--;
for(int j=2;j*j<=prev;j++){
if(prev%j==0){
int fact1=j;
int fact2=prev/j;
if(fact1==fact2)factors[fact1]++;
else{
factors[fact1]++;
factors[fact2]++;
}
}
}
if(!hasFactor&&prev>1) factors[prev]++;
}
cout<<2<<endl;
}
int32_t main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int t=1;cin>>t;
while(t--){solve();}
return 0;
}