如果一个大于等于 1 的正整数 n,满足所有小于 n 且大于等于 1 的所有正整数的约数个数都小于 n 的约数个数,则 n 是一个反素数。譬如:1, 2, 4, 6, 12, 24,它们都是反素数。
请你计算不大于 n 的最大反素数。
一行一个正整数 n。
只包含一个整数,即不大于 n 的最大反素数。
1000
840
数据范围与提示
对于 10% 的数据,1 \le n \le 10^3;
对于 40% 的数据,1 \le n \le 10^6;
对于 100% 的数据,1 \le n \le 2 \times 10^9。
反素数(Antiprime)也叫高度合成数(Highly composite number)。反素数有以下重要性质:
质因数连续且指数递减:如果 n = p_1^{a_1} \times p_2^{a_2} \times \dots \times p_k^{a_k} 是反素数,那么:
1、质因子一定是连续的从小到大的质数(p_1=2, p_2=3, p_3=5, \dots)
2、指数满足 a_1 \ge a_2 \ge \dots \ge a_k \ge 1
3、约数个数公式:n 的约数个数 d(n) = (a_1+1) \times (a_2+1) \times \dots \times (a_k+1)
搜索范围有限:由于 n \le 2 \times 10^9,质数最多用到前 10 个左右(2,3,5,7,11,13,17,19,23,29),因为 2 \times 3 \times 5 \times 7 \times 11 \times 13 \times 17 \times 19 \times 23 > 2 \times 10^9。