显示是第39个数据错误。 https://www.luogu.com.cn/record/50164526
#include<iostream>
#include<cstdio>
#include<map>
using namespace std;
typedef long long ll;
ll i,n,m,maxn;
map<ll,bool> F;
bool check(ll x){
F[1]=0;
for (i=1;i*i<=x;i++)
if (x%i==0)
if (F[i]|F[x/i])
return 0;
return 1;
}
int dfs(ll s,ll t,ll m){
ll i,j,q=s;
for (i=0;i<m&&t>i;i++) q=q*(t-i);
if (q<=maxn) return 0;
if (s>=maxn) maxn=s;
if (m<1) return 0;
for (i=t;i>=2;i--)
if (check(i)){
for (j=1;j*j<=i;j++)
if (i%j==0)
F[j]=F[i/j]=1;
if (!dfs(s*i,i-1,m-1)) return 1;
for (j=1;j*j<=i;j++)
if (i%j==0)
F[j]=F[i/j]=0;
}
return 1;
}
int main(){
scanf("%lld",&n);m=3;
dfs(1,n,m);
printf("%lld\n",maxn);
return 0;
}