Description

我們摯愛的一二學術長檸檬,於西元2023年1月13日,悄悄的離開這個世界,我們痛徹心扉,就僅僅一眨眼的時間,天人永隔。檸檬安祥的走完了18年的人生旅程,他彷彿在沉睡中做了一個美夢。夢醒了,留下陪伴我們成長過程中的點點滴滴,留下我們永恆的追思與感恩。

身為高三生,檸檬不負眾望地被學測給揍爛。
然而他們不知道的是,在學測前一天,檸檬做了一個惡夢:

進到考場後,第一個考科是數學。
檸檬非常緊張,因為數學正好是他最爛的科目。
發下考卷後,發現考卷上只有一個題目,
檸檬看著題目,發現自己完全不會算QAQ
很快收卷的鈴聲敲響,檸檬交了一張白卷。

夢醒了,做了惡夢的檸檬在學測考試時一直想著那道數學題到底要怎麼解,結果學測就燒雞ㄌ。

田鼠博士為了幫助可憐的學測牲檸檬,發明了一台機器「夢境終結者」,用來進入學測前檸檬的夢境幫他解決數學問題!該問題如下:

給定非負整數k、長度為n的序列a

定義函數σk(x)=d|xdk,也就是x所有正因數的k次方和

另一函數ω(x)=p|x1,其中p為質數,也就是x相異質因數個數
對於區間[l,r],請解出i=lr( ω(ai)×σk(ai) )的值。

有了早已取得數學博士學位的田鼠博士的協助,你們很快便解決了問題。
然而,惡夢還沒有結束:

夢裡的題目慢慢出現了變化,
「糟糕了,是修改操作!」田鼠博士大喊。
每當你解出題目,題目便會將序列a的第iai乘上一個與ai互質的整數t
「現在你必須加快動作,數字已經越來越大了...。」

作為建北電資學術力擔當的你,請你寫出一個程式來自動計算數學題,拯救可憐的學測牲吧。

Input Format

輸入第一行有三個整數n,q,k,分別代表序列長度n、操作次數q和題敘中的次方數k
第二行有n個正整數ai代表序列a的初始值。
接下來q行,會先有一個數字s代表接下來是詢問操作或修改操作:
s=0則該操作為詢問操作,接下來兩個整數l,r代表詢問的區間[l,r]
s=1則該操作為修改操作,接下來兩個整數p,t代表將ap乘上t

其中:
1n,q106
0k1018
1ai,t106
s0,1
1lrn
1pn
保證 t,ap:tap ( 即 tap 互質 )
保證一定存在詢問使得s=0

Output Format

對每個詢問操作,請輸出 i=lr( ω(ai)×σk(ai) ) 的值 mod 109+7

Sample Input 1

5 3 0
2 6 10 7 5
0 1 2
1 3 13
0 3 3

Sample Output 1

10
24

Sample Input 2

5 4 3
1 3 5 7 9
0 1 5
0 1 2
1 5 5120
0 1 5

Sample Output 2

1255
28
343753423

Hints

Subtasks

No. Testdata Range Score

TopCoder

餘切
freeh1

User's AC Ratio

100.0% (5/5)

Tags

Problem Source

Testdata and Limits

No. Time Limit (ms) Memory Limit (VSS, KiB) Output Limit (KiB) Subtasks
0 2000 500000 65536
1 2000 500000 65536
2 2000 500000 65536
3 2000 500000 65536
4 2000 500000 65536
5 2000 500000 65536
6 2000 500000 65536
7 2000 500000 65536
8 2000 500000 65536
9 2000 500000 65536
10 2000 500000 65536
11 2000 500000 65536
12 2000 500000 65536
13 2000 500000 65536
14 2000 500000 65536
15 2000 500000 65536
16 2000 500000 65536
17 2000 500000 65536
18 2000 500000 65536
19 2000 500000 65536
20 2000 500000 65536
21 2000 500000 65536
22 2000 500000 65536
23 2000 500000 65536
24 2000 500000 65536
25 2000 500000 65536
26 2000 500000 65536
27 2000 500000 65536