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); } }
反素数()
最新推荐文章于 2020-12-08 17:30:28 发布