SP7488 LGLOVE - LCM GCD Love

题目描述

有两个有 $n$ 个数的数列 $A$ 和 $B,B_i=\text{lcm}(1,2,3,...,A_i)$, 当 $A_i=0$ 时,$B_i=0$。 给出一个数 $m$ ,表示 $m$ 组询问或操作。 当输入为 $0\;i\;j\;p$ 时,表示将 $A_i$ 到 $A_j$ 内所有数加上 $p(-3\times 10^5\le p\le 3\times 10^5)$。 当输入为 $1\;i\;j$ 时,表示求出 $B_i$ 到 $B_j$ 内的所有数的 $\text{lcm}$。 当输入为 $2\;i\;j$ 时,表示求出 $B_i$ 到 $B_j$ 内的所有数的 $\gcd$。

输入格式

第一行两个数个数 $n$ 和 $m$,表示 $A$ 数组和 $B$ 数组的长度和询问的次数。 第二行 $n$ 个数,表示每个数 $A_i$。 后面 $m$ 行,表示 $m$ 次询问和操作。

输出格式

输出所有 $1\;2$ 操作的答案对 $10^{9}+7$ 取模的结果。

说明/提示

$n\le 10^5$。 $m\le 35000$。 $0\le A_i\le 3\times 10^5$。