#include<iostream>
using namespace std;
int a[10001];
int dfs[10001];
int findlost(int n){
int ans = 0;
for(int i = 0;i<n;i++){
if(n%i==0) {
ans+=i;
}
}
return ans;
}
int main(){
int n;
cin>>n;
for(int i = 1;i<=n;i++){
a[i]=findlost(i);
}
for(int i = 1;i<=n;i++){
for(int j = i;j<=n;j++)
dfs[j]=max(dfs[j],dfs[j-i]+a[i]);
}
cout<<dfs[n];
return 0;
}
为什么死循环啊