#!usr/bin/env python3 from collections import defaultdict,deque from heapq import heappush, heappop import sys import math import bisect import random def LI(): return [int(x) for x in sys.stdin.readline().split()] def I(): return int(sys.stdin.readline()) def LS():return [list(x) for x in sys.stdin.readline().split()] def S(): return list(sys.stdin.readline())[:-1] def IR(n): return [I() for i in range(n)] def LIR(n): return [LI() for i in range(n)] def SR(n): return [S() for i in range(n)] def LSR(n): return [LS() for i in range(n)] sys.setrecursionlimit(1000000) mod = 1000000007 #A def A(): try: n = I() a = IR(n) l = [] for i in range(n): for j in range(i): l.append(a[i]+a[j]) l = list(set(l)) l.sort() l = l[::-1] print(l[1]) except: print('"assert"') return #B def B(): n = I() return #C def C(): def su(n): return n*(n+1)//2 h,w = LI() w = abs(w) if w == 0: print(0) if h < w: ans = su(w)-su(w-h) else: ans = h-w+su(w) print(ans) return #D def D(): mem = defaultdict(lambda : None) def factor(n): if mem[n] != None: return mem[n] if n < 4: mem[n] = [n] return [n] res = [] i = 2 m = n while i ** 2 <= n: if n%i == 0: while n%i == 0: n //= i res.append(i) i += 1 if i == 2000: mem[m] = [] return [] if n != 1: res.append(n) mem[m] = res return res n = I() a = LI() li = [i for i in range(2,2000)] for d in li: li = [x for x in li if(x == d or x%d != 0)] li.insert(0,0) m = len(li) ind = [0]*2000 for i in range(m): ind[li[i]] = i f = [[0]*m for i in range(n+1)] for i in range(n): for j in range(m): f[i+1][j] += f[i][j] if a[i] == 1: continue res = factor(a[i]) for j in res: f[i+1][ind[j]] += 1 q = I() for i in range(q): p,l,r = LI() if p == 1: print("Yes") else: if f[r][0]-f[l-1][0]: print("Yes") else: res = factor(p) if res == []: print("NO") else: d = defaultdict(lambda : 0) for j in res: if j > 1999: print("NO") break d[ind[j]] += 1 else: for k,x in d.items(): if f[r][k]-f[l-1][k] < x: print("NO") break else: print("Yes") return #E def E(): n = I() return #F def F(): n = I() return #Solve if __name__ == "__main__": D()