[bzoj1053]反素数

http://blog.csdn.net/Le_ballon_rouge/article/details/47909363

 1 #include <iostream>
 2 #include <algorithm>
 3 #include <cstdio>
 4 #include <cstring>
 5 #include <cstdlib>
 6 using namespace std;
 7 
 8 int prime[15]={1,2,3,5,7,11,13,17,19,23,29},n,_cnt,_ans;
 9 void dfs(int pos,long long num,int size,int cnt){
10     if(pos>10)return ((_cnt<cnt&&_ans<num)||(num<=_ans&&cnt>=_cnt)?_cnt=cnt,_ans=num:0),void();
11     for(int i=0,t=1;i<=size;i++)if(num*t<n)dfs(pos+1,num*t,i,cnt*(i+1)),t*=prime[pos];
12 }
13 
14 int main(){
15     scanf("%d",&n);
16     dfs(0,1,30,1);
17     printf("%d\n",_ans);
18 }
View Code

 

posted @ 2017-01-28 23:52  KingSann  阅读(79)  评论(0编辑  收藏  举报