除数链
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

对于一个正整数 n,我们定义一个它的\textbf{素阶除数链}(prime-step divisor chain) 是一个由 n 的除数组成的序列 d_1, d_2, \ldots, d_m,它满足以下所有条件:
链的起始是 d_1 = 1
序列是严格递增的: d_1 < d_2 < \ldots < d_m
链中的每一个后续元素都是前一个元素乘以一个素数得到:对于所有的 i (从 1m-1),d_{i+1} / d_i 的结果是一个素数。
给定一个正整数 n,你需要找到两样东西:
n 的所有素阶除数链中,最长的那条链的长度是多少。
有多少条不同的除数链达到了这个最长长度。

由于链的数量可能非常大,请将链的数量对 10^9 + 7 取模。

输入描述:

输入仅一行,包含一个正整数 n (1 \le n \le 10^{12}) 。

输出描述:

输出两个用空格隔开的整数:素阶除数链的最大长度,以及达到这个最大长度的链的数量(对 10^9 + 7 取模)。
示例1

输入

复制
12

输出

复制
4 3
示例2

输入

复制
7

输出

复制
2 1