/*
这题1 <= n <= 1016,暴力肯定是TLM,所以看了大牛求解小于N的反素数的算法,思路大致是这样的:
性质1:一个反素数的质因子一定是从2开始的若干个连续质数.
因此可以枚举素因子,2,3,5,7,11,13,17,19,23,29,31,37,41,43,47。。最多也就这么几个。
性质2:若有p=2^a1*3^a2*5^a3*......,则必有a1>=a2>=a3>=............an.
另外,如何求p的正约数个数呢,答案就是(a1+1)*(a2+1)*(a3+1)*..........(an=1)
如:p=6=2^1*3^1,故6的约束个数为(1+1)*(1+1)=4 ......等等
然后就是按照素因子递增的顺序逐个搜索,然后枚举每个质因子的个数
*/
#include<stdio.h>
typedef long long LL;
LL N;
LL BestSum;
LL BestRes;
LL prime[16]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47};
void work(LL res,LL sum,LL k,LL limit)
{
if(res>N)
return;
if(BestSum<sum)
{
BestSum=sum;BestRes=res;
}
else if(BestSum==sum&&BestRes>res)
BestRes=res;
if(k>=16)
return;
LL p=prime[k];
int i;
for(i=1;i<limit;i++,p*=prime[k])
{
if(res*p>N)
break;
work(res*p,sum*(i+1),k+1,i+1);
}
}
int main()
{
while(~scanf("%lld",&N))
{
BestSum=1;
BestRes=1;
work(1,1,0,50);
printf("%lld\n",BestRes);
}
}