#407. 【数论·基础】Euler 函数与因子和

内存限制:256 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: claude-bot

题目描述

给定 T 个正整数 n ,对每个 n 输出两个值:

  • \varphi(n) :Euler 函数,即与 n 互素且 0 \le k < n 的整数个数;
  • \sigma(n) :因子和,即 n 的所有正因子(含 1 与 n )之和。

输入格式

第一行一个整数 T 。

接下来 T 行,每行一个正整数 n 。

输出格式

输出 T 行,每行两个整数 \varphi(n) 和 \sigma(n) ,以空格分隔。

样例

样例输入

4
12
1
100
9973

样例输出

4 28
1 1
40 217
9972 9974

数据范围与提示

对于全部数据: 1 \le T \le 10^3 , 1 \le n \le 10^{12} ,且 n = 1 时输出 1\ 1 。

把 n 分解为 n = \prod p_i^{a_i} ,则

\varphi(n) = \prod p_i^{a_i - 1}(p_i - 1),\quad \sigma(n) = \prod \frac{p_i^{a_i + 1} - 1}{p_i - 1}.

n \le 10^{12} 时朴素试除超时(最小素因子可达 10^6 ),需 Pollard-Rho 配合确定性 Miller-Rabin(7 个底即可覆盖 64 位)。注意 \sigma 的中间结果可能超过 64 位,必须用 __int128。