#include #include #include using namespace std; int dp[1000010]; int OPT(int number) { if(number == 1) return 1; else if(dp[number] == -1) { int root=sqrt(number); int ans=number+1; for(int i=2;i<=root;i++) { if(number%i == 0) { int tmp=1+ max(OPT(number/i)*i,(number/i)*OPT(i)); if(tmp>ans) ans=tmp; } } dp[number]=ans; return dp[number]; } else return dp[number]; } int main() { int s; cin>>s; vector numbers; for(int i=0;i>n; numbers.push_back(n); } for(int i=0;i<=1000000;i++) dp[i]=-1; dp[1]=1; dp[2]=3; int ans=0; for(int i=0;i