241701 - 反素数(antiprime)

题目描述

如果一个大于等于 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

标签
题目参数
时间限制 1 秒
内存限制 512 MB
提交次数 22
通过人数 7
金币数量 1 枚
难度 基础


上一题 下一题