#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> ii;
const int INF = 1e9;
const ll LINF = 1e18;
const int N = 2e5 + 5;
const int Q = 2e5 + 5;
const int MAX_A = 1e6;
const int B = 400;
struct Query {
int l, r, idx;
bool operator<(const Query& other) const {
if (l / B == other.l / B) {
return (l / B & 1) ? (r > other.r) : (r < other.r);
}
return l < other.l;
}
};
int n, q;
vector<ii> a[N];
vector<Query> queries;
vector<ii> factorize(int x) {
vector<ii> ans;
for (int i = 2; i * i <= x; i++) {
if (x % i == 0) {
int e = 0;
while (x % i == 0) {
x /= i;
e++;
}
ans.push_back({i, e});
}
}
if (x > 1) ans.push_back({x, 1});
return ans;
}
int cur_ans;
int cnt[MAX_A + 5]; // cnt[p] = số mũ mod cho 3 của thừa số nguyên tố p
int cnt_mod[3]; // cnt_mod[r] = số lượng p sao cho cnt[p] = r (mod 3)
int ans[Q];
void add(int i) {
for (ii p : a[i]) {
cnt_mod[cnt[p.first]]--;
cnt[p.first] = (cnt[p.first] + p.second) % 3;
cnt_mod[cnt[p.first]]++;
}
cur_ans = (cnt_mod[1] == 0 && cnt_mod[2] == 0);
}
void remove(int i) {
for (ii p : a[i]) {
cnt_mod[cnt[p.first]]--;
cnt[p.first] = ((cnt[p.first] - p.second) % 3 + 3) % 3;
cnt_mod[cnt[p.first]]++;
}
cur_ans = (cnt_mod[1] == 0 && cnt_mod[2] == 0);
}
int main() {
ios::sync_with_stdio(0); cin.tie(0);
cin >> n >> q;
for (int i = 1; i <= n; i++) {
int x; cin >> x;
a[i] = factorize(x);
}
for (int i = 0; i < q; i++) {
int l, r;
cin >> l >> r;
queries.push_back({l, r, i});
}
sort(queries.begin(), queries.end());
cur_ans = 0;
int cur_l = 1, cur_r = 0;
for (Query q : queries) {
while (cur_l > q.l) {
cur_l--;
add(cur_l);
}
while (cur_r < q.r) {
cur_r++;
add(cur_r);
}
while (cur_l < q.l) {
remove(cur_l);
cur_l++;
}
while (cur_r > q.r) {
remove(cur_r);
cur_r--;
}
ans[q.idx] = cur_ans;
}
for (int i = 0; i < q; i++) {
cout << (ans[i] ? "Yes" : "No") << '\n';
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+IAp1c2luZyBuYW1lc3BhY2Ugc3RkOyAgCgp0eXBlZGVmIGxvbmcgbG9uZyBsbDsgIAp0eXBlZGVmIHBhaXI8aW50LCBpbnQ+IGlpOyAgCgpjb25zdCBpbnQgSU5GID0gMWU5OyAgCmNvbnN0IGxsIExJTkYgPSAxZTE4OyAgCgpjb25zdCBpbnQgTiA9IDJlNSArIDU7IApjb25zdCBpbnQgUSA9IDJlNSArIDU7IApjb25zdCBpbnQgTUFYX0EgPSAxZTY7IApjb25zdCBpbnQgQiA9IDQwMDsgCgpzdHJ1Y3QgUXVlcnkgewoJaW50IGwsIHIsIGlkeDsgCglib29sIG9wZXJhdG9yPChjb25zdCBRdWVyeSYgb3RoZXIpIGNvbnN0IHsKCQlpZiAobCAvIEIgPT0gb3RoZXIubCAvIEIpIHsKCQkJcmV0dXJuIChsIC8gQiAmIDEpID8gKHIgPiBvdGhlci5yKSA6IChyIDwgb3RoZXIucik7IAoJCX0KCQlyZXR1cm4gbCA8IG90aGVyLmw7IAoJfQp9OyAKCmludCBuLCBxOyAKdmVjdG9yPGlpPiBhW05dOwp2ZWN0b3I8UXVlcnk+IHF1ZXJpZXM7IAoKdmVjdG9yPGlpPiBmYWN0b3JpemUoaW50IHgpIHsKCXZlY3RvcjxpaT4gYW5zOyAKCWZvciAoaW50IGkgPSAyOyBpICogaSA8PSB4OyBpKyspIHsKCQlpZiAoeCAlIGkgPT0gMCkgewoJCQlpbnQgZSA9IDA7ICAgCgkJCXdoaWxlICh4ICUgaSA9PSAwKSB7CgkJCQl4IC89IGk7ICAKCQkJCWUrKzsgCgkJCX0KCQkJYW5zLnB1c2hfYmFjayh7aSwgZX0pOyAKCQl9Cgl9CglpZiAoeCA+IDEpIGFucy5wdXNoX2JhY2soe3gsIDF9KTsgCglyZXR1cm4gYW5zOyAKfQoKaW50IGN1cl9hbnM7IAppbnQgY250W01BWF9BICsgNV07IC8vIGNudFtwXSA9IHPhu5EgbcWpIG1vZCBjaG8gMyBj4bunYSB0aOG7q2Egc+G7kSBuZ3V5w6puIHThu5EgcCAKaW50IGNudF9tb2RbM107IC8vIGNudF9tb2Rbcl0gPSBz4buRIGzGsOG7o25nIHAgc2FvIGNobyBjbnRbcF0gPSByIChtb2QgMykKaW50IGFuc1tRXTsgCgp2b2lkIGFkZChpbnQgaSkgewoJZm9yIChpaSBwIDogYVtpXSkgewoJCWNudF9tb2RbY250W3AuZmlyc3RdXS0tOyAKCQljbnRbcC5maXJzdF0gPSAoY250W3AuZmlyc3RdICsgcC5zZWNvbmQpICUgMzsKCQljbnRfbW9kW2NudFtwLmZpcnN0XV0rKzsgCgl9CgljdXJfYW5zID0gKGNudF9tb2RbMV0gPT0gMCAmJiBjbnRfbW9kWzJdID09IDApOyAKfQoKdm9pZCByZW1vdmUoaW50IGkpIHsKCWZvciAoaWkgcCA6IGFbaV0pIHsKCQljbnRfbW9kW2NudFtwLmZpcnN0XV0tLTsgCgkJY250W3AuZmlyc3RdID0gKChjbnRbcC5maXJzdF0gLSBwLnNlY29uZCkgJSAzICsgMykgJSAzOyAgCgkJY250X21vZFtjbnRbcC5maXJzdF1dKys7IAoJfQoJY3VyX2FucyA9IChjbnRfbW9kWzFdID09IDAgJiYgY250X21vZFsyXSA9PSAwKTsgCn0KCmludCBtYWluKCkgewoJaW9zOjpzeW5jX3dpdGhfc3RkaW8oMCk7IGNpbi50aWUoMCk7ICAJCgljaW4gPj4gbiA+PiBxOyAKCWZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgewoJCWludCB4OyBjaW4gPj4geDsgCgkJYVtpXSA9IGZhY3Rvcml6ZSh4KTsgIAoJfQoKCWZvciAoaW50IGkgPSAwOyBpIDwgcTsgaSsrKSB7CgkJaW50IGwsIHI7IAoJCWNpbiA+PiBsID4+IHI7IAoJCXF1ZXJpZXMucHVzaF9iYWNrKHtsLCByLCBpfSk7IAoJfQoKCXNvcnQocXVlcmllcy5iZWdpbigpLCBxdWVyaWVzLmVuZCgpKTsgIAoKCWN1cl9hbnMgPSAwOyAKCWludCBjdXJfbCA9IDEsIGN1cl9yID0gMDsgCgoJZm9yIChRdWVyeSBxIDogcXVlcmllcykgewoJCXdoaWxlIChjdXJfbCA+IHEubCkgewoJCQljdXJfbC0tOyAKCQkJYWRkKGN1cl9sKTsgCgkJfQoKCQl3aGlsZSAoY3VyX3IgPCBxLnIpIHsKCQkJY3VyX3IrKzsgCgkJCWFkZChjdXJfcik7IAoJCX0KCgkJd2hpbGUgKGN1cl9sIDwgcS5sKSB7CgkJCXJlbW92ZShjdXJfbCk7IAoJCQljdXJfbCsrOyAKCQl9CgoJCXdoaWxlIChjdXJfciA+IHEucikgewoJCQlyZW1vdmUoY3VyX3IpOyAKCQkJY3VyX3ItLTsgCgkJfQoKCQlhbnNbcS5pZHhdID0gY3VyX2FuczsgCgl9CgoJZm9yIChpbnQgaSA9IDA7IGkgPCBxOyBpKyspIHsKCQljb3V0IDw8IChhbnNbaV0gPyAiWWVzIiA6ICJObyIpIDw8ICdcbic7IAoJfQp9