#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; }
全部评论
(0) 回帖