题目 20210

简单题

查看题解 ↗GitHub ↗如何评测
题号
20210
标签
比赛NOIP
来源
炼石计划NOIP模拟赛第17套

简单题

题目信息

时间限制: 3s

空间限制: 1024M

输入文件: easy.in

输出文件: easy.out

题目描述

对于 ≥2\ge 2 的整数 mm 和正整数 aa,定义 fm(a)f_m(a) 为 [0,m)[0,m) 内的整数 xx 的个数,满足 xa≡1(modm)x^a\equiv 1\pmod m,且对于任何一个整数 a′∈[1,a)a'\in[1,a) 都有 xa′≢1(modm)x^{a'}\not\equiv 1\pmod m。也就是说,fm(a)f_m(a) 等于模 mm 意义下阶为 aa 的剩余类个数。

YeahPotato 现在给你了若干个 mm,他希望你对于每个 mm,回答最大的 fm(a)f_m(a),即 max⁡a∈N+{ fm(a) }\max_{a\in N_+}\set{f_m(a)}。特殊地,当 m=1m=1 时,你只需要回答 11 即可。

YeahPotato 将会用如下方式给出这些 mm:初始时 m=1m=1,每次他会将 mm 乘上或者除以一个质数(他保证 mm 时刻为正整数),你则要在每次修改后回答对应的最大值  mod 998244353\bmod{998244353}。

输入格式

第一行一个正整数 qq,表示修改次数。

接下来 qq 行每行先是一个符号 + 或 -,然后一个正整数 pp,保证 pp 为质数。符号与数之间不带空格,也就是可以直接当作有符号整数读入。若符号为 + 则表示将 mm 乘上 pp,否则表示将 mm 除以 pp。

输出格式

输出 qq 行,依次表示每次修改后的答案。

样例

样例输入 1

文本
4
+2
+3
+2
-3

样例输出 1

文本
1
1
3
1

样例解释 1

以第三次修改后的 m=12m=12 为例。注意有些数的幂次永远不可能等于 11,我们就将它忽略。

使得 1a≡1(mod12)1^a\equiv 1\pmod{12} 的最小正整数 aa 为 11。

使得 5a≡1(mod12)5^a\equiv 1\pmod{12} 的最小正整数 aa 为 22。

使得 7a≡1(mod12)7^a\equiv 1\pmod{12} 的最小正整数 aa 为 22。

使得 11a≡1(mod12){11}^a\equiv 1\pmod{12} 的最小正整数 aa 为 22。

因此 f12(1)=1,f12(2)=3f_{12}(1)=1,f_{12}(2)=3,其余的 f12(a)f_{12}(a) 值均为 00。

样例输入 2

文本
9
+5
+7
+3
+3
+2
-5
+7
-3
+23333

样例输出 2

文本
2
8
16
64
64
24
144
36
528768

样例输入 3

见下发文件夹中的 easy/easy3.in。

样例输出 3

见下发文件夹中的 easy/easy3.ans。

样例输入 4

见下发文件夹中的 easy/easy4.in。

样例输出 4

见下发文件夹中的 easy/easy4.ans。

数据范围与提示

测试点编号 q≤q\le m≤m\le 特殊性质
11 30003000 300300
22 5050 3000030000
33 5×1055\times 10^5 3000030000
44 5×1055\times 10^5 10610^6
55 2×1052\times 10^5 10910^9
66 5×1055\times 10^5 AB
77 300300 A
88 30003000 A
99 5×1055\times 10^5 A
1010 5×1055\times 10^5

上表中 m≤Mm\le M 表示任何时刻 mm 都 ≤M\le M,留空表示无限制。

特殊性质 A:输入只有正数。

特殊性质 B:输入除了的第一行外,其余行均相同。

对于 100%100\% 的数据,1≤q≤5×105,2≤p≤1071\le q\le 5\times 10^5,2\le p\le 10^7,保证 pp 为质数。

数据下载

题目 20210 的公开数据

正在读取文件列表…

常用命令

题目 20210 的 ROJ 命令

以下命令默认使用全局安装的 ROJ Skill,请在终端中直接执行;如果修改过 AGENT_HOME,请将命令中的 ~/.agents 替换为对应目录。