#abc238g. [abc238_g]Cubic?

[abc238_g]Cubic?

题目描述

给定一个由NN个数字组成的序列AA,回答以下QQ个问题。

  • 在第ii个问题中,给出整数LiL_iRiR_i。是否$A_{L_i} \times A_{L_i+1} \times \dots \times A_{R_i}$是一个立方数?

这里,当存在一个整数yy使得x=y3x=y^3时,正整数xx被称为一个立方数。

约束条件

  • 输入中的所有值都是整数。
  • 1N,Q2×1051 \le N,Q \le 2 \times 10^5
  • 1Ai1061 \le A_i \le 10^6
  • 1LiRiN1 \le L_i \le R_i \le N

输入

输入格式如下所示:

NN QQ A1A_1 A2A_2 \dots ANA_N L1L_1 R1R_1 L2L_2 R2R_2 \vdots LQL_Q RQR_Q

输出

打印QQ行。 第ii行应该包含Yes,如果在第ii个问题中,$A_{L_i} \times A_{L_i+1} \times \dots \times A_{R_i}$是一个立方数,否则输出No。 检查程序对大小写不敏感;输出可以是大写或小写。


示例输入1

8 5
7 49 30 1 15 8 6 10
1 2
2 3
4 4
5 8
3 8

示例输出1

Yes
No
Yes
No
Yes
  • 对于第一个问题,7×49=3437 \times 49 = 343是一个立方数。
  • 对于第二个问题,49×30=147049 \times 30 = 1470不是一个立方数。
  • 对于第三个问题,11是一个立方数。
  • 对于第四个问题,15×8×6×10=720015 \times 8 \times 6 \times 10 = 7200不是一个立方数。
  • 对于第五个问题,$30 \times 1 \times 15 \times 8 \times 6 \times 10 = 216000$是一个立方数。