1 #include <iostream>
2 #include <algorithm>
3 #include <cstring>
4 #include <cstdio>
5 #include <string>
6 #include <map>
7 #include <cmath>
8 #include <vector>
9
10 #define Faster ios::sync_with_stdio(false),cin.tie(0)
11 #define Read freopen("in.txt","r",stdin),freopen("out.txt","w",stdout)
12 #define Close fclose(stdin),fclose(stdout)
13 const int maxn = 1e5 + 5;
14 using namespace std;
15 const int MOD = 1e9+7;
16 typedef long long ll;
17
18 vector<int> g[maxn];
19 //下标肯定是从小到大按顺序的
20
21 void res(int id, int x){
22 for(int i = 2;i*i <= x;i++){
23 while(x%i == 0){
24 g[i].push_back(id);
25 x /= i;
26 }
27 }
28 if(x > 1)
29 g[x].push_back(id);
30 }
31
32 int query(int l,int r, int x){
33 return upper_bound(g[x].begin(), g[x].end(), r) - lower_bound(g[x].begin(),g[x].end(), l);
34 }
35
36 void init(){
37 for(int i = 0;i < maxn;i++)
38 g[i].clear();
39 }
40
41 int main(){
42 // Faster;
43 int t;
44 // cin >> t;
45 scanf("%d", &t);
46 while(t--){
47 init();
48 int n, q;
49 scanf("%d%d", &n, &q);
50 for(int i = 1;i <= n;i++){
51 int x;
52 // cin >> x;
53 scanf("%d", &x);
54 res(i, x);
55 }
56 while(q--){
57 int l, r, d, num;
58 // cin >> l >> r >> d;
59 scanf("%d%d%d", &l, &r, &d);
60 bool ok = true;
61 for(int i = 2;i*i <= d;i++){
62 int cnt = 0;
63 while(d%i == 0){
64 cnt++;
65 d /= i;
66 }
67 //因子为i 的数目 大于(l,r)中i 的个数
68 num = query(l, r, i);
69 if(cnt > num){
70 ok = false;
71 break;
72 }
73 }
74 if(ok && d > 1){
75 num = query(l, r, d);
76 if(num == 0)
77 ok = false;
78 }
79 if(ok)
80 // cout << "Yes" << endl;
81 printf("Yes\n");
82 else
83 // cout << "No" << endl;
84 printf("No\n");
85 }
86 }
87 return 0;
88 }