#T2166. 约数分析(Divisor Analysis)

约数分析(Divisor Analysis)

链接: https://cses.fi/problemset/task/2182

板块: Mathematics

时限: 1.00 s | 内存: 512 MB

题目描述

给定一个整数,你的任务是求出其约数的个数、约数之和以及约数的乘积。以数字 1212 为例:

  • 约数的个数为 66(分别为 11223344661212
  • 约数之和为 1+2+3+4+6+12=281+2+3+4+6+12=28
  • 约数之积为 1234612=17281 \cdot 2 \cdot 3 \cdot 4 \cdot 6 \cdot 12 = 1728

由于输入的数字可能很大,它以质因数分解的形式给出。

输入

第一行包含一个整数 nn:表示质因数分解的因子个数。

之后有 nn 行描述该分解。每行包含两个数 xxkk,其中 xx 为素数,kk 为其指数。

输出

输出三个整数,均对 109+710^9+7 取模:分别表示约数的个数、约数之和以及约数之积。

数据范围

1n1051 \le n \le 10^5 2x1062 \le x \le 10^6 每个 xx 都是不同的素数 1k1091 \le k \le 10^9

样例输入

2
2 2
3 1

样例输出

6 28 1728