hiho week 89 register

Ended

Participants:860

Verdict:Accepted
Score:100 / 100
Submitted:2016-03-12 23:50:08

Lang:G++

Edit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include<cmath>
#include<iostream>
using namespace std;
typedef long long ll;
long prime[]={2 ,3 ,5 ,7 ,11 ,13 ,17 ,19 ,23 ,29 ,31 ,37 ,41};
ll result,n,maxDivisors;
void dfs(long t,ll now,ll divisors,ll lastNi){
    if(divisors > maxDivisors || (divisors==maxDivisors&&now<result)){
        maxDivisors = divisors;
        result = now;
    }
    int i = 1;
    while(now * pow(prime[t],i)<n && i<=lastNi){
        dfs(t+1,now * pow(prime[t],i),divisors*(i+1),i);
        i = i+1;
    }
}
int main()
{
    cin>>n;
    maxDivisors=0;
    dfs(0,1,1,100);
    cout<<result<<endl;
    return 0;
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX