124. 约数个数
时间限制:1000 MS 内存限制:64 MB
题目描述
# 约数个数 ## 题目描述 给定 $n$ 个正整数 $a_1,a_2,\ldots,a_n$,求它们的乘积的正约数个数。 由于答案可能很大,请输出答案对 $10^9+7$ 取模的结果。 ## 输入格式 从文件 `divisors.in` 中读取数据。 第一行包含一个整数 $n$。 接下来 $n$ 行,每行包含一个正整数 $a_i$。 ## 输出格式 将结果输出到文件 `divisors.out` 中。 输出一个整数,表示所有 $a_i$ 的乘积的正约数个数对 $10^9+7$ 取模的结果。 ## 数据范围 - $1 \le n \le 100$。 - $1 \le a_i \le 2 \times 10^9$。 时间限制:$1000$ 毫秒。 内存限制:$64$ MB。 ## 样例输入 ``` 3 2 6 8 ``` ## 样例输出 ``` 12 ``` ## 样例说明 这些数的乘积为 $2 \times 6 \times 8=96=2^5 \times 3$,正约数个数为 $(5+1)(1+1)=12$。 ## 提示 根据算术基本定理,任意一个大于 $1$ 的正整数,都可以唯一地分解为若干个不同质数的幂的乘积(不计质因子的排列顺序)。 若正整数 $N$ 的质因数分解为 $$ N=p_1^{e_1}p_2^{e_2}\cdots p_k^{e_k}, $$ 其中 $p_1,p_2,\ldots,p_k$ 是互不相同的质数,则 $N$ 的正约数个数为 $$ (e_1+1)(e_2+1)\cdots(e_k+1). $$ 特别地,$1$ 的正约数个数为 $1$。