#P17139. Phi Master

Phi Master

1003. Phi Master

题目描述

小 C 在找 npy。

众所周知,找 npy 需要考虑两人之间的默契。经过初步筛选,小 C 列出了一个候选人列表 a1,a2,,ana_1,a_2,\ldots,a_n,其中 aia_i 表示第 ii 号候选人的能力值。

如果小 C 的能力值为 xx,那么候选人 ii 和小 C 之间的默契度为 φ(xai)\varphi(xa_i),其中 φ\varphi 表示欧拉函数。

由于小 C 的能力值未知,小 R 想要你对每个可能的能力值 xx,求出此时的最大默契度。

形式化地,对每组测试数据,给定序列 a1,a2,,ana_1,a_2,\ldots,a_n,对所有满足 1x1071\le x\le 10^7 的整数 xx,定义

Fx=max1inφ(xai).F_x=\max_{1\le i\le n}\varphi(xa_i).

你需要按照特殊格式输出这些值的压缩结果。

输入格式

第一行一个正整数 TT1T31\le T\le 3),表示测试数据的组数。

对于每组测试数据:

  • 第一行包含一个正整数 nn1n2×1061\le n\le 2\times 10^6),表示序列长度。

  • 第二行包含 nn 个正整数 a1,a2,,ana_1,a_2,\ldots,a_n1ai1071\le a_i\le 10^7)。

输出格式

对每组测试数据,令 B=1000B=1000。你需要输出 BB 行,第 i+1i+1 行输出整数 AiA_i,其中 0i<B0\le i<B,并且

$$A_i=\bigoplus_{\substack{1\le x\le 10^7\\ x\bmod B=i}} \left\lceil \frac{x}{B}\right\rceil F_x.$$

这里 \oplus 表示按位异或。

多组测试数据的输出依次排列,中间不需要输出空行

样例输入

1
8
13 7 10 20 4 9 19 16

样例输出

见题目附件

提示

题目附件

来源:2026杭电多校-测试专用(山西实验) 原题链接:http://acm.hdu.edu.cn/contest/problem_show.php?cid=1234&pid=1003