1. 程式人生 > >【BZOJ1053】[HAOI2007]反素數(搜索)

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

.org ++i name turn spa oid href () pre

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

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