反素数()

  1. void dfs(int dept,LL nn,LL fnum,int index)
    {
        if(fnum>k)return ;
        ///if(nn>Linf) return ;
        if(fnum==k&&ans>nn)
            ans=nn;
        for(int i=1; i<=index; i++)
        {
            if((ans<(double)nn*p[dept])||(fnum*(i+1)>k))
                break;
            nn*=p[dept];
            if(k%(fnum*(i+1))) continue;///剪枝
            dfs(dept+1,nn,fnum*(i+1),i);
        }
    }


你可能感兴趣的:(基础题)