其中1有点特殊所以就直接从2开始了
#include<bits/stdc++.h>
using namespace std;
int w[2000],f[2000];
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
w[i]++;
for(int j=2;j<i;j++){
if(i%j==0){
w[i]+=j;
}
}
}
for(int i=2;i<=n;i++){
for(int j=n;j>=i;j--){
f[j]=max(f[j],f[j-i]+w[i]);
}
}
cout<<f[n];
return 0;
}