反素数
题目
解析
1,打表
(需要其他做法)
2,DFS
DFS十个质数即可
3,利用高合成数的特性来做
code:
#include<cstdio>
#define int long long
using namespace std;
int n,pr[11]={0,2,3,5,7,11,13,17,19,23,29},ch[11],ans=1e18,anss=1;
inline void dfs(int x,int y,int z)
{
if(x==11){if(z>anss||z==anss&&ans>y)ans=y,anss=z;return;}
for(int i=0,xx=y;i<=ch[x-1]&&xx<=n;++i)ch[x]=i,dfs(x+1,xx,z*(i+1)),xx*=pr[x];
}
signed main()
{
scanf("%lld",&n),ch[0]=10;
dfs(1,1,1);
printf("%lld",ans);
return 0;
}