10pts,求调
查看原帖
10pts,求调
1252892
zyc20130505楼主2025/1/5 10:02
#include<bits/stdc++.h>
using namespace std;
int v[1010];
int s;
int ys(int x){
	int num=1;
	for(int i=2;i<x;i++){
		if(x%i==0){
			num+=i;
		}
	}
	return num;
}
bool max(int a,int b){
	return a>b?a:b;
}
int f[1010];
int main(){
	cin>>s;
	for(int i=1;i<=s;i++){
		v[i]=ys(i);
	}
	for(int i=1;i<=s;i++){
		for(int j=s;j>=v[i];j--){
			f[j]=max(f[j],f[j-i]+v[i]);
		}
	}
	cout<<f[s];
}
2025/1/5 10:02
加载中...