【BZOJ1053】[HAOI2007]反素数(搜索)

【BZOJ1053】[HAOI2007]反素数(搜索)

题面

BZOJ
洛谷

题解

大力猜一下用不了几个质因子,那么随便爆搜一下就好了。

#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;
}

猜你喜欢

转载自www.cnblogs.com/cjyyb/p/9727001.html