#include using namespace std; #define MOD 1000000007 //#define MOD 998244353 #define INF 1145141919810893364 typedef pair PP; typedef long long ll; template inline bool chmax(T& a, T b) { if (a < b) { a = b; return 1; } return 0; } template inline bool chmin(T& a, T b) { if (a > b) { a = b; return 1; } return 0; } #define int ll #define setdouble setprecision #define REP(i,n) for(int i=0;i<(n);++i) #define OREP(i,n) for(int i=1;i<=(n);++i) #define RREP(i,n) for(int i=(n)-1;i>=0;--i) #define GOODBYE cout << -1 << endl;return 0 #define MM <<" "<< #define Endl endl const int MEM=20; bool Imp[MEM]={}; int Imp_r[MEM]={}; int Amax=0; vector Pri; int G[2000]; const int maxN=2000; bool Prime[maxN+1]={}; void PrimeArray(int n){ for(int i=0;i<=maxN;i++){ Prime[i]=true; } Prime[0]=false; Prime[1]=false; int root_n = (int)sqrt(n); for(int i=2;i<=root_n;i++){ if(Prime[i]==false)continue; for(int j=2*i;j<=n;j+=i){ Prime[j]=false; } } } vector factoring(int E){ vector R; REP(i,Pri.size()){ R.push_back(0); while(1){ if(E%Pri[i]==0){ R[(R.size())-1]++; }else{ break; } } } return R; } signed main(void){ int N,Q; int A[MEM],P[MEM],L[MEM],R[MEM]; vector a[MEM],p[MEM]; vector b[MEM],q[MEM]; cin >> N; REP(i,N){ cin >> A[i]; Amax=max(Amax,A[i]); a[i]=factoring(A[i]); } cin >> Q; REP(i,N){ cin >> P[i] >> L[i] >> R[i]; L[i]--;R[i]--; p[i]=factoring(P[i]); } PrimeArray(Amax); REP(i,maxN){ if(Prime[i]==true){ G[i]=Pri.size(); Pri.push_back(i); } } REP(i,N){ if(i==0){ Imp_r[i]=Imp[i]; }else{ Imp_r[i]=Imp_r[i-1]+Imp[i]; } } REP(i,N){ if(i==0){ REP(j,a[0].size()){ b[i][j]=a[i][j]; q[i][j]=p[i][j]; } }else{ REP(j,a[0].size()){ b[i][j]=b[i-1][j]+a[i][j]; q[i][j]=q[i-1][j]+p[i][j]; } } } REP(i,Q){ int I; vector C,E; I=Imp_r[R[i]];if(L[i]!=0)I-=Imp_r[L[i]-1]; REP(j,b[0].size()){ C[j]=b[R[i]][j]; } REP(j,q[0].size()){ E[j]=q[R[i]][j]; } if(L[i]!=0){ REP(j,b[0].size()){ C[j]-=b[L[i]-1][j]; } REP(j,q[0].size()){ E[j]-=q[L[i]-1][j]; } } bool check=true; REP(j,b[0].size()){ if(C[j]>E[j]){ check=false; } } if(I==0 && check==true){ cout << "Yes" << endl; }else{ cout << "NO" << endl; } } return 0; }