/** * @FileName a.cpp * @Author kanpurin * @Created 2020.06.16 17:15:34 **/ #include "bits/stdc++.h" using namespace std; typedef long long ll; int main() { int n; cin >> n; vector< int > a(n); for (int i = 0; i < n; i++) { cin >> a[i]; } int N = 2 * 1000; vector< bool > isprime(N + 1, true); vector< int > prime; isprime[0] = isprime[1] = false; for (int i = 2; i * i <= N; i++) { if (isprime[i]) { for (int j = i + i; j <= N; j += i) { isprime[j] = false; } } } for (int i = 2; i <= N; i++) { if (isprime[i]) { prime.push_back(i); } } vector< vector< int > > kosuu(n + 1, vector< int >(prime.size(), 0)); for (int i = 0; i < n; i++) { kosuu[i + 1] = kosuu[i]; for (int j = 0; j < prime.size(); j++) { if (a[i] == 1) break; if (a[i] < prime[j]) { cerr << "Error!" << endl; return 1; } while (a[i] % prime[j] == 0) { a[i] /= prime[j]; kosuu[i + 1][j]++; } } } int q;cin >> q; for (int i = 0; i < q; i++) { int p, l, r; cin >> p >> l >> r; bool ok = false; for (int j = 0; j < prime.size(); j++) { if (p == 1) { puts("Yes"); ok = true; break; } if (p < prime[j]) { break; } int cnt = 0; while (p % prime[j] == 0) { cnt++; p /= prime[j]; } if (cnt > kosuu[r][j] - kosuu[l-1][j]) { break; } } if (p != 1 || !ok) { puts("NO"); } } return 0; }