#W1001. 约数个数定理

约数个数定理

题目描述

唯一分解定理指出,对于每个大于 11 的自然数 nn,如果 nn 不是质数,那么 nn 可以唯一分解为有限个素数的乘积。即存在素数 p1,p2,,pkp_1,p_2,…,p_k 和正整数 a1,a2,,aka_1,a_2,…,a_k,使得:

$$n = p_1^{a_1} \times p_2^{a_2} \times \ldots \times p_k^{a_k} $$

由约数(因数)定义可知: P1a1P_1^{a_1} 的约数有 P10,P11,...,P1a1P_1^0,P_1^1,...,P_1^{a_1}a1+1a_1+1 个,同理 P2a2P_2^{a_2} 的约数共有 a2+1a_2+1 个。

故根据乘法定理可得 nn 的约数个数就是 (a1+1)×(a2+1)×...×(ak+1)(a_1+1)\times(a_2+1)\times...\times(a_k+1)

请编写程序求出正整数 n(n>1)n(n>1) 的约数个数

输入格式

输入一个正整数 nn

输出格式

输出一个正整数表示 nn 的约数个数

5
2

样例 1 解释

55 的因子有 1 522

100
9

样例 2 解释

100100 的因子有 1 2 4 5 10 20 25 50 10099

数据规模与约定

  • 对于 30%30\% 的数据,2n1032 \le n \le 10^3

  • 对于 100%100\% 的数据,2n1072 \le n \le 10^7