BZOJ1053 [HAOI2007]反素数ant
有一定的结论需要知道、、、
1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 using namespace std; 5 typedef long long LL; 6 LL ans,ans1,n,prime[8] = {2,3,5,7,11,13,17,19}; 7 void dfs(int id,int mmax,LL t,LL tt) 8 { 9 if(id>=8){return;} 10 11 for(int i = 1;i<=mmax;++i){ 12 t*=prime[id]; 13 if(t>n)return; 14 if(tt*(i+1)>ans1)ans1 = tt*(i+1),ans = t; 15 if(tt*(i+1)==ans1)ans = min(t,ans); 16 dfs(id+1,i,t,tt*(i+1)); 17 } 18 } 19 int main() 20 { 21 cin>>n; 22 ans = 0,ans1 = 1; 23 dfs(0,25,1,1); 24 cout<<ans<<endl; 25 return 0; 26 }
弱者究竟为何而战?!