#D. 神奇的变换

    Type: Default 1000ms 256MiB

神奇的变换

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

有一天,玥玥在电视上,看到了一种神奇的数字变换。

这种变换是这样的: 首先我们拿到一个正整数,然后对它分别进行以下分解:

  1. 分解它的质因数,数一数其质因数的指数,如果有一个质因数的指数 ≥ 2 , 写下 0;否则,若有奇数个质因数,写下 −1 ,否则写下 1。
  2. 分解其所有正约数,写下其约数个数以及约数总和。 显然,对于每一个数 𝑥,经过变换后将得到 3 个整数。

玥玥试了试,发现他算出了正确的答案,他太开心了!

然而,很不幸,这一切被玥玥的老师看见了。老师总算是找到了给玥玥出题的机会,于是在第二天,老师给玥玥留了一道《好》题。 老师给玥玥了 𝑛 个正整数,排成一排。老师让玥玥仔细看看这个序列(名字叫 𝑎),然后告诉了玥玥他会问 𝑞 个问题。每一个问题中,老师给出两个数 𝑙, 𝑟,让玥玥算出数字 𝑥 的答案,其中x=i=lraix=\prod_{i=l}^{r}a_i

“老师,这个数(指 𝑥𝑥)太大了怎么办?”

“没关系,你只需要告诉我答案对 109+710^9 + 7 取模的结果就行了(完全理解成了答案太大)。

实在不行的话,可以请别人帮忙哦。”这下可把玥玥难住了。

她请班上 OI 最强的你来帮他解决这个问题,毕竟,这可 能会给她加不少德育分啊! 老师比较善良,所以每一次回答问题时,只需要回答答案中的第 type问就可以 (1type31 ≤ type ≤ 3)。注意,这里的输出 𝑥 的答案指的是输出 𝑥 经过上述变换得到的 3 个整数中的第 type 个。

由于老师的问题是一个一个问的,所以本题强制在线。

输入格式

第一行三个整数 𝑛, 𝑞,type ,其中 type 表示询问种类。 第二行 𝑛 个整数,第 𝑖 个整数代表 𝑎𝑖𝑎_𝑖

后面 𝑞 行每行两个整数 𝑙′, 𝑟′,表示一个询问。

设 𝑙ast 为上次询问的答案,初始为 0。则询问的区间为[l=lxorlast,r=rxorlast][l=l' xor last,r=r' xor last],保证1lrn1 \le l \le r \le n

你需要对该区间回答第 type种询问。

输出格式

对于每一次询问,输出一行一个整数表示答案取模后的结果。

5 3 1
1 2 3 4 5
2 4
3 5
1 3
0
0
1
5 3 2
1 2 3 4 5
2 4
11 13
13 15
8
12
4
5 3 3
1 2 3 4 5
2 4
63 57
169 171
60
168
12

提示与说明

image

image image image image

0718

Not Attended
Status
Done
Rule
IOI
Problem
4
Start at
2024-7-18 13:30
End at
2024-7-18 17:30
Duration
4 hour(s)
Host
Partic.
4