#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+5;
int a[maxn],b[maxn];
int fac[10*maxn];
int n;
void get_faca(){
for(int i=1;i<=n;i++){
int x=a[i];
for(int j=1;j<=sqrt(x);j++){
if(x%j==0){
fac[j]++;
}
}
}
for(int i=1;i<=n;i++)fac[a[i]]++;
}
bool get_facb(){
bool ans=true;
for(int i=1;i<=n;i++){
if(fac[b[i]]&&b[i]!=1){
ans=false;
return ans;
}
}
for(int i=1;i<=n;i++){
int x=b[i];
for(int j=1;j<=sqrt(x);j++){
if(x%j==0){
if(fac[j]&&j!=1){
ans=false;
break;
}
}
}
if(ans==false)break;
}
return ans;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
for(int j=1;j<=n;j++)cin>>b[j];
get_faca();
bool flag = get_facb();
if(flag==false)puts("No");
else puts("Yes");
return 0;
}