SP33062 LCMP - LCM Pesticide

题目描述

N个斯洛伐克农民在一条河边拥有相邻的田地,形成一条直线。每个田地都有害虫(可能没有)。 得益于巧妙的斯洛伐克科学,农民们可以为每种害虫分配一个素数。然后,可以为每个田地分配一个正数,代表正遭受该害虫的害虫-此数的素因数分解表明存在哪些害虫,每个质数的幂表示该害虫对田地的侵害程度。 然后,可以为每种农药分配一个正数,其设计应使其素因数分解表明其可以抑制的害虫,并且每个素数的幂代表它可以处理该害虫的强度。 为了帮助农民,斯洛伐克政府可以选择一种害虫,然后将专门针对该害虫设计的农药倒入河中,从而在所有田地中完全抑制该物种。但是,由于环境方面的考虑,他们一次只能使用一种农药-当政府改用针对另一种害虫设计的另一种农药时,以前被禁止的农药会全力返回所有领域。 最重要的是,农民工会可以要求自己在田间喷洒农药。由于这是使用飞机完成的,因此他们只能要求将农药喷洒在连续的田地上。 现在,对于每个请求,政府都想知道他们可以使用的最便宜的农药,以抑制所请求领域中所有田地上的所有害虫。

输入格式

第一行包含两个整数N和Q,表示字段数和事件数。 第二行包含N个整数f1,...,fN 表示分配给字段的数字。它们将为正,且不大于10^5 随后出现Q行,按事件发生的顺序描述事件。 如果输入的第一行为1,则再输入一个P,表示斯洛伐克政府已开始将针对害虫编号P(素数)的农药泵入河中,并且不再针对以前的害虫泵农药(如果它们是这样做。P=1是个例外,这意味着根本没有农药被泵入河中。最初,政府不抽任何农药。) 如果输入的第一行为0,则再输入L,R,表示农民要求从L到R的连续区域(包括首尾)喷洒农药。

输出格式

对于第一个输入为0的每个事件,输出最小数量的农药并模10^9+7,该农药可以处理从L到R的该段区域中的所有侵扰。 如果输入的第一个为1,则不用输出 # 输入输出样例 ### 输入 #1 10 12 4 2 3 5 6 47 10007 32768 59049 1 0 1 5 0 2 5 1 2 0 1 5 0 2 5 0 6 10 1 3 0 6 10 1 1 0 1 10 0 10 10 0 1 5 ### 输出 #1 60 30 15 15 772456932 411740567 342852967 1 60