【BZOJ1053】[HAOI2007]反素数(搜索)
【BZOJ1053】[HAOI2007]反素数(搜索)
题面
题解
大力猜一下用不了几个质因子,那么随便爆搜一下就好了。
#include<iostream>
#include<cstdio>
using namespace std;
int pri[15]={0,2,3,5,7,11,13,17,19,23,29,31,37,41,43};
int ans,d,n;
void dfs(int x,int s,int D)
{
if(x==15){if(d<D||(d==D&&ans>s))ans=s,d=D;return;}
for(int i=1,p=1;1ll*p*s<=n;++i,p*=pri[x])
{
dfs(x+1,s*p,D*i);
if(1ll*p*pri[x]>n)break;
}
}
int main()
{
cin>>n;dfs(1,1,1);
printf("%d\n",ans);
return 0;
}