题目
#include<bits/stdc++.h>
using namespace std;
int s;
int val[1005];
int dp[1005];
inline int search(int a)
{
int ans=0;
for(int i=1;i<a;i++)
if(a%i==0) ans+=i;
return ans;
}
int main()
{
cin>>s;
for(int i=1;i<=s;i++)
val[i]=search(i);
for(int i=2;i<=s;i++)
{
for(int j=1;j<=s;j++)
dp[j]=max(dp[j-i]+val[i],dp[j]);
}
int ans=0;
for(int i=1;i<=s;i++)
{
if(dp[i]>ans) ans=dp[i];
}
cout<<s;
return 0;
}